
LeetCode
何杭江
开始起步
展开
-
菜鸟初刷LeetCode——数组(3) containsDuplicate 存在重复
给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 思路一: 排序然后遍历,当和下一个相等,就输出 思路二: 放入set,然后比较原数组长度和set的长度,相等就是没重复 思路三: 循环,然后每次都去看这个数字之前有没有和 这个数字相等的数。最终超时。 思路四(看...原创 2018-08-26 09:55:51 · 330 阅读 · 0 评论 -
菜鸟初刷LeetCode——数组(4) singleNumber只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 思路(一开始做不出来,看到别人的觉得真的牛逼): 利用^相同的数都是0,0和任何数字异或都是本身的性质 比如1^2^2^3^1^2 = 3,就是最终的那个数字 * Description:给定...原创 2018-08-26 10:01:39 · 301 阅读 · 0 评论 -
菜鸟初刷LeetCode——数组(5) plusOne加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2: 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321...原创 2018-08-26 10:06:44 · 561 阅读 · 0 评论 -
菜鸟初刷LeetCode——数组(6) moveZeroes移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 思路: 遍历,另外在维护一个指向非0数的索引,当当前数字为0,就将这个数字和索引指向的数字交换。 当索引已经在末尾了,则后面已经没有非0数字了...原创 2018-08-26 10:10:19 · 301 阅读 · 1 评论 -
菜鸟初刷LeetCode——数组(1) removeDuplicates从排序数组中删除重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1,2。 你不需要考虑数组中超出新长度后面的元素。 示例 2: ...原创 2018-08-23 21:28:53 · 6611 阅读 · 2 评论 -
菜鸟初刷LeetCode——数组(2) maxProfit 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔...原创 2018-08-23 21:55:18 · 263 阅读 · 0 评论