華為機試題 凸包

2021-07-04 16:29:45 字數 1277 閱讀 8044

輸入:

13;-3,-3;1,3;2,-4;6,1;-2,-2;4,5;1,-2;1,4;-2,3;-4,1;-1,1;2,2;1,-1

輸出:-4, 1

-2, 3

4, 5

6, 1

2, -4

-3, -3

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

const int maxn = 1010;

int x[maxn];

int y[maxn];

bool equal(double d1, double d2)

int main()else if(x1 == x[i] && y1 < y[i])

if(x[i] > x2)else if(x2 == x[i] && y2 < y[i]) }

printf("%d, %d\n", x1, y2);

// 輸出上半圈

int cx, cy, lx = x1, ly = y1;

double max_k, k;

while(lx != x2)

k = (double)(y[i] - ly) / (x[i] - lx);

if(equal(k, max_k))

}else if(max_k < k)

} printf("%d, %d\n", cx, cy);

lx = cx;

ly = cy;

} // 輸出與(x2, y2)橫座標相同,縱座標最小的點(如果有的話)

cy = y2;

for(i = 0; i < n; ++i)

} if(cy != y2)

// 輸出下半圈

lx = x2, ly = cy;

while(lx != x1)

k = (double)(y[i] - ly) / (x[i] - lx);

if(equal(k, max_k))

}else if(max_k < k)

} if(cx != x1)

lx = cx;

ly = cy;

} // 輸出與(x1, y1)橫座標相同,縱座標最小的點(如果有的話)

cy = y1;

for(i = 0; i < n; ++i)

} if(cy != y1)

}

華為機試題

今天去華為機試,感覺是再謹慎都不為過啊!zc前一天晚上還跟我強調了判空,記憶體釋放。前兩題都是基本題,後面一題不會。1 輸入兩個數 反轉相加的和輸出。2 三天打漁兩天曬網 從1990 年1月1日開始 打漁輸出fishing 曬網輸出sleeping 我因為printf的是fishing sleepi...

華為機試題

通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1.僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcbc 2.壓縮欄位的格式為 字元重複的次數 字元 例如 字串 yyy...

華為機試題

1.輸入乙個字串,將字串中的非字母字元刪除,保留字串中的小寫字母,將大寫字母變為小寫字母,然後輸出字串。比如 輸入 sdf sfjadf sdf 輸出 sdfsfjadfsdf 2.n進製數求和,輸入乙個整數n 2 n 35 兩個字串,字串中的字元一定是0 9或者a z 10 35 中的,輸出兩個字...