Sum Of Left Leaves
Sum Of Left Leaves 123456789101112int helper(TreeNode *node, bool isFromLeft){ if (node != NULL) { if (isFromLeft && node
Sum Of Left Leaves 123456789101112int helper(TreeNode *node, bool isFromLeft){ if (node != NULL) { if (isFromLeft && node
Nth Digit 这道题目更偏数学。 一位数的时候是 1 2 3 4 5 6 7 8 9 共9个数 二位数的时候是 10 11 12 13 14 15 … 96 97 98 99 共90个数 三位数的时候是 100 101 102 103 … 996 997 998 999 共
Rotate Function 一开始我是用O(N^2)的复杂度来实现的,根据题目中的规则来实现。 但是超时了,实际上可以根据数学规律来实现: 比如size为6的数组 初始状态: 0*[0]+1*[1]+2*[2]+3*[3]+4*[4]+5*[5] 第i=1次旋转: 0*[5]
Wiggle Subsequence 这道题目我用两个数组dp和dir来实现动态规划的, dp[i]表示以nums[i]结尾的wiggle序列的最大长度 dir[i]表示以nums[i]结尾的wiggle序列下一个数字是上升还是下降,1表示下一个数字应该上升,0表示都可以,-1表
Best Time To Buy And Sell Stock IV 方法和III是一样的,只是需要处理一个大数的情况,如果当K >= prices.size()/2,那么我们的策略就是所有坡度都会计算,和II的问题是一样的。
Best Time To Buy And Sell Stock III 维护两个动态规划数组,分别是local和global,其中global[i][j]表示第i天的股票在第j次交易的最大盈利,而local[i][j]表示第i天的股票买入的第j次交易的最大盈利。那么 local[
Elimination Game 我一开始想过模拟,但是一想到模拟中对vector的删除操作的复杂度,我就觉得不能单纯的用模拟来实现。 所以我的方法是用两个指针,一个指向头,一个指向尾,同时定义一个diff变量,表示每次删除操作的跳步距离。 根据观察,我们发现其实每次跳步的距离都
Perfect Rectangle 这道题目和室友讨论过,可以先判断是否存在矩形之间的覆盖,再求所有小矩形的面积之和是否等于大矩形的面积。 那么大矩形的坐标可以通过该点的坐标和(x+y)是否是最小和是否是最大,以O(n)的速度来找出。在找最左下坐标和最右上坐标时就可以把所有的矩形
#1039 字符消除 这道题目我是枚举实现的,枚举字符串所有可以插入的位置以及插入的字符分别是A,B,C。 利用递归来返回消除相同子串的个数,每次递归消除包含相同字符的子串。 用一个变量来记录相同子串的开始位置pre,接着用i遍历字符串s,如果s[i]不等于s[pre]且pre和
Evaluate Reverse Polish Notation 求解逆波兰表达式,我是用了一个额外的栈来储存之前的计算结果。实际上可以用递归来处理,每次传入的是栈顶的位置。
Lexicographical Numbers 这道题目用递归来做,”10”<”100” 123456789101112131415161718void helper(int start, int end, vector<int> &v){ i
#1102 Individual Income Tax Grade Monthly Taxable Income Tax Rate(%) Income of 1,500 yuan or less 3% That part of income in excess
First Unique Character in a String 我用map来储存之前访问过的char和个数的映射。如果当前字符和候选字符相同,那么就往候选字符后面寻找。
Remove Duplicate Letters 需要记录字符串中字符出现的个数,一个记录返回值的栈,以及一个数组来记录字符是否被添加进栈中。 遍历整个字符串,来决定当前字符的位置 出现的个数-1 如果当前字符没有被访问过,对栈顶的元素进行循环判断,如果栈顶元素的个数为0,说明该
First Bad Version 这道题目就是正常的二分,start为1,end为n,mid为两者的一半。 如果mid指向的数是bad version,那么说明最后一个非bad version在前面,那么就往前找(end=mid); 如果mid指向的数不是bad version