240 发简信
IP属地:湖南
  • 120
    55.跳棋

    和跳棋2的思路类似,也是利用左右指针来表示所能达到的位置。为了能正确的推出循环,利用两个变量来保存right 如果两次迭代的right 是一样的立即结束循环,因为不可能跳得更...

  • 120
    54.旋转矩阵

    给定一个矩阵,返回按照其顺时针旋转的数组。如: 思路:一共只有3类矩阵,m>n, m=n 和 m<n 三种,对于中间这一种,一直迭代就行,而对于另外两种,迭代完成之后还需...

  • 53.最大子序列和

    给定一个数组,找出其中和最大的子序列。 思路:把所有的和都算出来,建立sum数组,找出其中最大和最小的和,相减即可得到。sum应该要先放入一个0进去。每次都对当前的最大和比较...

  • 48.旋转图像

    给定一个矩阵,将其顺时针旋转90度 思路1:两两交换,为了方便交换,先将每一行反向,这样再做对称的交换即可。

  • 120
    47.排列2

    与上题不同,这次的数组中存在相同的元素。插入的思路已经没办法进行下去了,只能用交换的思想,而交换的时候只要保证交换的两者不一样即可,这样就能保证不重复了。 注意这里一定要进行...

  • 120
    46.排列

    给定n个不同的数字,返回所有可能的排列。 主要思想是插入,对于给定的数字,分别插入。如给定的 1 2 3 。首先选取 1 , 然后将 2 插入其中 ,就变成了 1 2 和 2...

  • 120
    45.跳棋2

    利用双指针,左侧指向能跳的最近的那个,右侧指向能跳的最远的那个,一旦最远的大于等于size-1了就可以返回步数了。

  • 120
    41.第一个缺失的正数

    要求O(n) 这就代表了我们不能排序,如果可以排序的话会很简单。比如可以如下这样: 先对数组排序,只要假设第一个缺失的数字就好了,首先假设是1 如果出现了1 那么我们再假设是...

  • 40.联合的和2

    与上题不同,每个数字只能使用一次。 利用深度优先搜索,其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.

  • 120
    39.联合的和

    给定一组候选的数和一个目标和,使用候选的数(不限个数,不限次数)相加得到目标和,并返回所有可能的加法。 /* 这是一个递归算法,算法的三部分,起始条件,终止条件和递归。 首先...

  • 120
    42.困住的雨水

    给定一个数组来代表土堆,计算这个土堆能困住多少雨水。 思路:采用双指针。利用一个额外的变量来记录雨水的高度。问题在于雨水的高度是多少,显然雨水的高度应当是相邻的较小值,如果只...

  • 36.有效数独

    利用矩阵来记录是否出现过 以 row[9][9] 为例,第一个是代表第几行,第二个则是代表第几个数,初始化全为0,出现过则对相应位置 set 1 每次出现数字都对矩阵检查,如...

  • 35.寻找插入位置

    给定一有序数组,寻找某数的位置,如不存在则插入该数,并返回其索引。 思路:还是二分查找,如果不存在该数,那么我们实际上找到就是大于他的那个数字,所以二分迭代最好是先判断是否大...

  • 34.寻找有序数组中的第一个和最后一个数

    寻找有序数组中,值为val的数的范围,如果没有则返回-1 -1 . 思路:用二分查找先找到最左边的数,在循环找右侧的数。

  • 120
    33.搜索循环有序数组

    给定一个循环有序数组,如 4 5 6 0 1 2 3 ,寻找其是否存在特定值,并返回其坐标。数组中不存在重复元素。 思路:要求复杂度为O(log n),则联想到二分查找,问题...

  • 120
    31.下一排列

    给定一个数列,寻找按字典序排列比它大的下一数列,如果不存在比它大的数列,则寻找字典序最小的数列。 考虑两种情况:1.逆序数组不存在字典序比它大的情况,这时候返回升序数组即可。...

  • 28.实现strStr()函数

    函数作用,检查a字符串里是否含有b字符串,如果有则返回第一个相同的位置,无则返回-1 思路:双重循环比较,只要出现了不同就break以提高效率。

  • 27.删除元素

    给定一个无序数组,要求删去所有值为val的元素,并将剩余元素前移,返回删去后的数组长度。 思路:删除元素是很麻烦的事,但是这里并没有要求我们删去,实际上我们只要把不是val的...

  • 26.有序数组去重

    返回一个int型变量以表示去重后的长度,并使链表前n个数为去重后的向量。 思路:利用循环遍历即可,只要后者比前者大,就把后者放在正确的位置。

  • 22.生成括号对

    给定n的括号对,返回所有可能的排列情况。 类似于17题,电话中的数字字母转换。将( 和 )分别看成两个数字。