// todo : 大整數減法、除法
int a =
1, b =
1, c =2;
// ... 斐波那契遞推
while(.
..)
int
func
(int x)
return t == raw;
}
long
long ans, zero_cnt, now =1;
...if
(num[i]
=='0'
)else
if(num[i -13]
=='0'
)else
if(zero_cnt ==
0) ans =
max(ans, now)
;
int num[30]
[30];
// 技巧,預設為 0 使得邊緣不特判..
.// 八個方向重複特判 只取 4 個方向 → ↘ ↓ ↙
int dir[4]
[2]=
;...
// 方向選擇
for(
int k =
0; k <4;
++k)
ans =
max(ans, t)
;}
// fib
long
longf(
int n)
// 考拉茲猜想
intfunc
(long
long n)
else
num[n]
= t;
return t;
}
// 通過 num[0] 儲存數值位數,陣列中存數從低位到高位
num1[0]
=strlen
(s1)
;for
(int i =
0, j = num1[0]
; i < num1[0]
;++i,
--j)..
.sum[0]
=max
(num1[0]
, num2[0]
);for(
int i =
1; i <= sum[0]
;++i)
}// 大整數乘法..
.for
(int i =
1; i <= n1[0]
;++i)
}// 前讀數邏輯類似,後進製邏輯類似..
.
int
func
(int
*n1,
int*n2)..
.int num[2]
[1000]=
,};// 兩個數 1,1
// 特判時自退出
int a =
0, b =1;
for(
int i =3;
1;++i)
swap
(a, b)
;// 迴圈交換
}
long
long dp[25]
=;// 從 1 開始不用邊界特判
for(
int i =
1; i <=21;
++i)
}// 另外一種:數學思考方法,從開始走到結尾,一共走 4 步,2 步下,2步右,組合問題
// 從上到下
for(
int i =
1; i <= n;
++i)
}// 從下到上
for(
int i = n; i >0;
--i)
}
while
(cin >> name[n]
)// 批量讀入字串
// 返回數字位數
intdigit
(int x)
intcheck
(int x,
int*num)
num[x %10]
=1; x /=10
;}return1;
}int
func
(int a,
int b,
int c)
;// 共同檢查操作乙個陣列if(
check
(a, num)==0
||check
(b, num)==0
||check
(c, num)==0
)return0;
return1;
}for
(int i =
1; i <
100;
++i)}}
}}
int
check
(int x,
int n)
return t == raw;
}
// 取數方便些,先將數進行處理
int num[10]
;void
init()
num[i]
= j;}}
init()
;
面試筆試演算法目錄
尋找缺失的數字 二進位制中1的個數 位運算 檢測乙個數能否被3整除 位運算 判斷兩個數是否符號相反 位運算 數字轉字母的編碼方式的個數 dp 直方圖最大面積 dp 求最長上公升 下降子串行 o nlgn 尋找下乙個較大元素 利用棧 包含min函式的棧 利用棧 中綴表示式轉為字尾表示式 棧 tromi...
面試筆試演算法 廣搜
用於計算地圖中起點到終點最短步長問題。廣蒐時,偶爾會有疑惑,為什麼可以在標記地圖上直接標上步數?會不會有別的點廣蒐時步數更小的情況?答案當然是不會的,在初始情況時,一定要把所有初始點塞進佇列中,才能開始廣搜,這樣保證每一輪都穩定地往起始點外擴乙個步長,並且先標記到的格仔中記錄的一定是最短步長。難得的...
面試筆試演算法題練習一(列表逆數)
2019年某公司一道筆試題如圖 現在需要注意的問題 1.若人在樓棟中間,最少可以看見3棟樓 兩旁的樓 自身所在樓 若樓層無遮蓋,則可以看見更多。2.若人在兩邊界,則最少可以看見2棟樓 一旁的樓 自身所在樓 若樓層 無遮蓋,則可以看見更多。自己的錯誤思路1 簡單的計算逆數,只算有無遮蓋,忽略了若建築物...