LeeCode精選top面試題

2021-10-11 01:51:52 字數 2839 閱讀 2692

// 思路:巧用進製變數 

#if 1

#include #include using namespace std;

listgetrevalue(listll, listlr)

if (iterlr == lr.end())

int sum = (*iterll + *iterlr + carry) % 10;

lres.emplace_back(sum);*/

int sum = 0;

int all = 0;

if (iterll == ll.end())

else if (iterlr == lr.end())

else

sum = all % 10;

lres.emplace_back(sum);

carry = all / 10;

if (iterll != ll.end())

if (iterlr != lr.end())

}if (carry > 0)

return lres;

}int main()

; listlr = ;

listlres = getrevalue(ll, lr);

list::iterator iter = lres.begin();

for (; iter != lres.end(); ++iter)

cout << endl;

return 0;

}#endif

#if 0

#include #include #include using namespace std;

// 暴力查詢

string longestpalindrome(string s)

int maxn = 1;

int idx = 0;

for (int i = 0; i < len - 1; i++) }}

return s.substr(idx, maxn);

}// 動態規劃 只遍歷二維陣列一半的區域

// 思路:找出狀態轉移方程

string longestpalindrome_dp(string s)

if (dp[i][j]) // 更新長度}}

}return s.substr(start, len);

}// 相同思路拓展:最長上公升子串行

string longestrisesub_dp(string s)

if (dp[i][j]) // 更新長度}}

}return s.substr(start, len);

}// 中心擴充套件 時間o(n^2) 空間o(1)

//int computelen(string s, int l, int r)

// else

//

// }

// return j - i - 1;

//}//

//string longestpalindrome_center(string s)

// int maxn = 1;

// int idx = 0;

//// for (int i = 0; i < len - 1; i++)

// }

// return s.substr(idx, maxn);

//}//

//string longestpalindrome_mlc(string s)

// int p[t.size()] = , id = 0, mx = 0, resid = 0, resmx = 0;

// for (int i = 1; i < t.size(); ++i)

// if (resmx < p[i])

// }

// return s.substr((resid - resmx) / 2, resmx - 1);

//}int main()

#endif

#if 0

#include #include #include using namespace std;

class automaton },

},},}};

int get_col(char c)

public:

int sign = 1; // 正負符號

long long ans = 0;

void get(char c)

else if (state == "signed")

sign = c == '+' ? 1 : -1;

}};class solution

};int main()

#endif

// 思路:每次移動較小的邊, 並更新最大容量

#if 0

#include #include #include using namespace std;

uint32_t getmaxcapacity(const vectorv)

uint32_t l = 0, r = v.size() - 1;

uint32_t maxc = 0;

uint32_t tmp = 0;

while (l < r)

if (v[l] <= v[r])

else

}return maxc;

}int main()

; cout << getmaxcapacity(v) << endl;

return 0;

}#endif

LeetCode精選TOP面試題169 多數元素

給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列 現次數大於 n 2 的元素。陣列是非空的,並且給定的陣列總是存在多數元素。示例 1 輸入 3 2,3 輸出 3示例 2 輸入 2 2,1 1,1 2,2 輸出 2根據題目描述,給定的陣列總是存在多數元素,而多數元素的定義指在陣列 現...

LeetCode精選TOP面試題53 最大子序和

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。example input 2,1,3,4,1,2,1,5,4 output 6 note 連續子陣列 4,1,2,1 的和最大,為 6思路1 動態規劃 時間複雜度o n 空間複雜度o 1 貪心演算法 ...

面試題精選 微軟試題

微軟試題 1 直線飛行 一架飛機載滿油飛行距離為1,n架飛機最遠能飛多遠?就是不是兜圈沒有迎頭接應的情況,這問題就是n架飛機能飛多遠?存在的極值問題是不要重複飛行,比如兩架飛機同時給一架飛機加油同 時飛回來即可認為是重複,或者換句話說就是離出發點越遠在飛的飛機 就越少,這個極值條件是顯然的,因為n架...