摘要:
"50. Pow(x, n)" ACM时快速幂都快用烂了。。。此题思路类似 假如 n = 13,13在二进制中表示为:00001101,那么13 = 2^3 + 2^2 + 2^0 class Solution { public double myPow(double x, int n) { int 阅读全文
摘要:
"49. 字母异位词分组" 桶排分类即可 class Solution { public List groupAnagrams(String[] strs) { Map map = new HashMap(); for (String str : strs) { map.computeIfAbsen 阅读全文
摘要:
"48. 旋转图像" 模拟题,其实挺不喜欢做模拟题的。。。 其实这题一层一层的转就好了,外层转完里层再转,其实就是可重叠的子问题了。 转的时候呢,一个数一个数的转,一个数带动四个数。如图所示,2这个数应该怎么转: 难点就是如何用坐标表示出来相对位置,写坐标的时候思路一定要清晰啊! class Sol 阅读全文
摘要:
"47. 全排列 II" 比上一个题多了个重复性 与 "46. 全排列" 完全一样的代码。。。 阅读全文
摘要:
"46. 全排列" 这题我们可以借用 "31. 下一个排列" 写的nextPermutation函数来做,稍微改造一下即可 注意要先给nums排个序 阅读全文
摘要:
"45. 跳跃游戏 II" 动态规划 此题可以倒着想。 看示例: [2,3,1,1,4] 我们从后往前推,对于第4个数1,跳一次 对于第3个数1,显然只能跳到第4个数上,那么从第3个数开始跳到最后需要两次 对于第2个数3,显然一步到位,跳一次 对于第一个数2,只能选择跳一次还是跳两次,显然选择跳一次 阅读全文
摘要:
"875. 爱吃香蕉的珂珂" 这题时间要求比较严格。。。 首先,将piles排序,然后二分查找。 总之,答案K肯定位于piles[?]~piles[?+1]或者1~piles[0]之间 所以我们先二分把?找到,然后再二分找到K即可 class Solution { public int minEat 阅读全文
摘要:
"874. 行走机器人模拟" 模拟 描述方向时有个技巧:int[][] dx = {{0, 1}, {1, 0}, {0, 1}, { 1, 0}}; 分别存储机器人向上、右、下、左走时,坐标应该如何变换 class Solution { public int robotSim(int[] comm 阅读全文
摘要:
"872. 叶子相似的树" 前序遍历,记录叶子节点即可 阅读全文