摘要:
仅供自己学习 思路: 因为是left到right范围内的所有元素的相与和,所以如果这个范围的数的二进制如果每一位都有0,那么最终就是0。如果不为0的话,那说明范围内所有数的某个位都为1。 所以相与是公共前缀,即相同的高位加上后续的全为0,那么和我们只需要一直右移到left和right相等即可,此时就 阅读全文
摘要:
仅供自己学习 思路: 直接定义每个类型的车的park数的变量,每次创建一个对象就载入值,每加入一辆车就减少一个park数即可 代码: 1 class ParkingSystem { 2 private: 3 int pb=0; 4 int pm=0; 5 int ps=0; 6 public: 7 阅读全文
摘要:
仅供自己学习 思路: 通过每次n和1相与获得最低位,然后将其左移到31-i位,在将n右移一位更新最低为,这样就能翻转过来了。 代码: 1 class Solution { 2 public: 3 uint32_t reverseBits(uint32_t n) { 4 uint32_t rev=0; 阅读全文
摘要:
仅供自己学习 思路: 这里先使用的是递归的方法,首先是反转整个的链表,在判断已经递归到最后一个元素后,将该元素作为新的头节点,返回该元素,我们在倒数第二个元素,现在将这个元素的next的next指向该元素,再将该元素的next指向NULL,然后再次返回头节点,再次进行。 例如1->2->3->4,我 阅读全文
摘要:
仅供自己学习 思路:用DFS递归即可,每次进入一个递归,就相当于下去一层,深度加1,再将深度传入即可。如果到叶子节点了,就返回深度,这个深度是左右两个子树在比较谁更深,去最深的长度作为返回的深度 代码: 1 /** 2 * Definition for a binary tree node. 3 * 阅读全文
摘要:
仅供自己学习 思路: 贪心,每次从该位置 i 都选择能到达的位置之中选择最大的可以跳到的位置并且如果从这个位置跳的最大位置要大于 i 这个位置能跳到位置更大,就更新能跳到的位置。即使达到i最大能跳的位置了,最大跳数还是会更新,因为跳到的地方为 i+nums[i]。我们用一个end来记录一次i位置能跳 阅读全文
摘要:
仅供自己学习 思路: 我们可以通过中序遍历先把每个节点存放于一个数组里,然后对于next函数,因为题目说了next一定是有效的,所以我们我们只需要返回索引在的位置的元素,并把索引加一对于hasnext函数,只需判断是否大于数组的长度即可。 代码: 1 /** 2 * Definition for a 阅读全文