摘要:
平衡二叉树:左右子树的高度之差为1 阅读全文
摘要:
阅读全文
摘要:
因为数组是有序的,所以只要用二分法先找到数字出现的位置,然后在左右统计个数 注意:这里二分法不能使用递归,因为可能会由于数组过大导致递归深度太深,应该使用迭代进行二分 阅读全文
摘要:
通过图示可以看出,当p1和p2一直往后走,当p1为空的时候,p1就跑到链表p2的头节点的地方 当p2为空的时候,p2就跑到p1的头节点的地方,这样p1和p2所走的路程就是一样多了,必定在公共 节点处相遇 哈哈哈,抄一段大佬的代码! 阅读全文
摘要:
思路很简单,定义两个数组,lower代表小写字母是否被访问过,upper代表大写字母是否被访问过 如果当前字母已经在之前被查询过了就不需要再次查询了 一次遍历当前数组中的每一个字母,然后在内层循环中查找后面是否存在相同的,如果没有相同的就直接返回了 当然还有大佬只使用一个数组来存放大小写,先便利一次 阅读全文
摘要:
盗用一个大佬的解题思路 min({arr[p2]*2, arr[p3]*3, arr[p5]*5}) 是c++11支持的写法,内部运用initializaer_list<int>的方法实现。 阅读全文
摘要:
一次遍历数组,将当前a【i】与其后面的每一个a【j】进行组合,即判断a【i】a【j】 与 a【j】a【i】哪一个更小 如果是a【j】a【i】更小的话,则交换a【j】与 a【i】的值。如此一来则能够找到每一个数的最合适的位置。 有点类似于冒泡排序的思想,将每一个能够组合起来得到最小值的a【j】放到当前 阅读全文