程序员面试金典
https://www.nowcoder.com/ta/cracking-the-coding-interview?page=1
SYaoJun
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CM74 下一个较大元素
分析题目:CM74 下一个较大元素思路:保留最大元素,右下降栈代码class NextElement {public: vector<int> findNext(vector<int> A, int n) { // write code here vector<int> res(n); stack<int> stk; for(int i = n-1; i >= 0; i原创 2021-10-10 10:21:26 · 242 阅读 · 0 评论 -
高度最小的BST
题目类型:树难度:2题意:使用有序数组构建二叉查找树,标准模板题。注意树的定义在类之前有写,不需要自己重写。class MinimalBST {public: int buildMinimalBST(vector<int> vals) { TreeNode* root = build(vals, 0, vals.size()-1); ...原创 2020-04-11 09:49:37 · 217 阅读 · 0 评论 -
下一个较大元素Ⅱ
题目类型:单调双栈 二分题意:找到大于当前数的最小值。版本1set有序二分查找34msclass NextElement {public: vector<int> findNext(vector<int> A, int n) { vector<int> res(n, -1); set<int> st...原创 2020-03-28 22:47:39 · 249 阅读 · 0 评论 -
合法括号序列判断
把做括号视为1,有括号视为-1,在字符串的遍历过程中保证前缀和为非负同时反向做一遍,但是此时右括号为1,左括号为-1,保证前缀和为非负class Parenthesis {public: bool chkParenthesis(string A, int n) { int x = 0; for(auto c: A){ if(c=...原创 2019-10-29 07:56:34 · 246 阅读 · 0 评论 -
机器人走方格I
数组要初始化为0class Robot {public: int dp[13]={0}; int countWays(int x, int y) { for(int i = 1; i <= x; i++) for(int j = 1; j <= y; j++){ if(i==1 &&am...原创 2019-10-29 07:46:47 · 148 阅读 · 1 评论 -
上楼梯
(a+b)%c = ((a%c)+(b%c))%c两次取模class GoUpstairs {public: const int N = 1e5+5; const int M = 1e9+7; int countWays(int n) { int F[N]; F[1] = 1; F[2] = 2; F[3...原创 2019-10-29 07:39:15 · 199 阅读 · 0 评论 -
阶乘尾零
阶乘后面0的数量跟5有关直接除class Factor {public: int getFactorSuffixZero(int n) { int res = 0; while(n){ res += n/5; n /= 5; } return res; }};...原创 2019-09-13 09:27:33 · 203 阅读 · 0 评论 -
二叉树平衡检查
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Balance {public: boo...原创 2019-09-19 09:05:47 · 135 阅读 · 0 评论 -
检查是否为BST
rand()函数产生伪随机数,可以生成0到rand_max之间的一个随机数 srand()提供种子,称为随机数生成器的初始化器 头文件stdlib.h 下面是根据种子生成的1-6之间的10个随机数#include#includeint main(){ unsigned int seed; while(scanf("%d",&seed) != EOF){ sra原创 2018-02-01 17:52:50 · 310 阅读 · 0 评论 -
最近公共祖先
class LCA {public: int getLCA(int a, int b) { map<int, bool> mp; while(a){ mp[a] = true; a = a/2; } while(b){ if(mp[b]== t...原创 2019-09-19 17:13:41 · 182 阅读 · 0 评论 -
奇偶位交换
大神代码class Exchange {public: int exchangeOddEven(int x) { int oddVal = (x & 0xAAAAAAAA); // bit 1 3 5 ... 31 int evenVal = (x & 0x55555555); // bit 0 2 4 ... 30 re...原创 2019-09-19 17:27:02 · 223 阅读 · 0 评论 -
整数转换
class Transform {public: int calcCost(int x, int y) { string a = bitset<32>(x).to_string(); string b = bitset<32>(y).to_string(); int cnt = 0; for(int i =...原创 2019-09-19 17:33:26 · 321 阅读 · 0 评论 -
2的个数
class Count2 {public: int countNumberOf2s(int n) { string str = to_string(n); int res = 0; for(int i = 0; i < str.size(); i++){ int l = 0, r = 0, p = 1; ...原创 2019-09-19 19:30:20 · 202 阅读 · 0 评论 -
链表分割
题目链接/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class Partition {public: ListNode* partition(ListNode* p, int x) { //用两个...原创 2019-09-13 09:17:38 · 159 阅读 · 0 评论 -
清除行列
题目链接class Clearer {public: vector<vector<int> > clearZero(vector<vector<int> > mat, int n) { int x[505]={0}, y[505]={0}; for(int i = 0; i < n; i++){ ...原创 2019-09-13 08:43:44 · 156 阅读 · 0 评论
分享