摘要:
"43. 字符串相乘" 高精度乘法,这题敲的太多了。。直接交了 阅读全文
摘要:
"42. 接雨水" 思路:一块柱子能接水的量取决于它左右两边最高的柱子中较短的一个。 阅读全文
摘要:
"41. 缺失的第一个正数" 注意这题要求时间复杂度应为O(n),并且只能使用常数级别的空间。 挺有意思的一个题。 思路: 通过交换元素的位置使得正确的位置仅存放正确的数字,例如给定一个数字3那么他应该在第三个位置,下标为2 。当数字 n 或 0 && nums[i] != i + 1) { if 阅读全文
摘要:
"40. 组合总和 II" 这题跟上题做法几乎一样,只不过每个数能取多次改成了最多能取一次,同时candidates可能会出现相同字符,感觉还没有上一个题难。 代码仅需改两处即可,直接看代码把,有注释的地方即是改过的 class Solution { public List combinationS 阅读全文
摘要:
"39. 组合总和" 直接暴力思路,用dfs+回溯枚举所有可能组合情况。难点在于每个数可取无数次。 我的枚举思路是: 外层枚举答案数组的长度,即枚举解中的数字个数,从1个开始,到target/ min(candidates)终止。 然后内层就可以dfs搜索了, 缕清状态的转换与回溯,题就做出来了。 阅读全文
摘要:
"38. 报数" 水题 阅读全文
摘要:
"37. 解数独" 1A 这个题其实15分钟左右就敲出来并且对了。。。但是由于我输错了一个数。。导致我白白debug一个多小时。。 没啥难度,练递归 dfs的好题 class Solution { private int which(int i, int j) { if (i 阅读全文
摘要:
"非阻塞同步算法与CAS(Compare and Swap)无锁算法" 这篇问题对java的CAS讲的非常透彻! 锁的代价 1. 内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和 阅读全文