
leetcode
少玩游戏多看代码
这个作者很懒,什么都没留下…
展开
-
做leetcode前复习
基本用法:sort(vec.beign(), vec.end());升序排列。sort会根据剩余数据的大小自动选择排序策略,无论什么情况,sort都能保证O(N*log2(N)),基本是比你手写的要好的。原创 2023-04-13 16:35:03 · 89 阅读 · 0 评论 -
【leetcode】7,整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21主要在于从数字钟剥离每一位的操作。抽出最后一位:int pop = x % 10;x /= 10;以及反顺序组合:sum = 10 * sum + pop;class Solution {public: int reverse(int x) { if原创 2020-05-27 14:53:28 · 114 阅读 · 0 评论 -
【leetcode】36,数独是否有效
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。固定输入9*9网络。空输入用'.'表示。如输入:[ ["5","3",".",".","7",".",".",".","."], ["6",".",".","1","9","5",".",".","."], [".","9","8",".",".",".",".原创 2020-05-26 21:01:12 · 153 阅读 · 0 评论 -
【leetcode】1,寻找两数之和等于目标
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]在debug过程中发现样例的特殊情况:会有0+0,会有-2+3。我的写法是暴力遍历。碰到大规模数组就凉凉,最后耗时680m原创 2020-05-26 18:30:16 · 315 阅读 · 0 评论 -
【leetcode】66,数组表示的数加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。主要在于别人写得比我简洁优雅。思路是差不多的。他的istop,如果没有进位的话,istop就是0,这样循环下去原创 2020-05-26 14:05:16 · 146 阅读 · 0 评论 -
【leetcode】350,两数组的交集
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。我的算法是暴力破解。选择较短的那个数组,将它的每个成员,跟另一个数组的每个成员对比。为了避免 “ 数组A中的一个2对应了数原创 2020-05-25 11:19:30 · 100 阅读 · 0 评论 -
【leetcode】136,返回只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4我的做法。先sort,然后一个个对比是否相等。期间要if很多种情况。有一个报错是因为所有的return都在if里,这可能会导致输出没有return,所以最后在最外面加了一个return 0。这个错误要注意。c原创 2020-05-24 17:49:59 · 114 阅读 · 0 评论 -
【leetcode】189,旋转数组
Given an array, rotate the array to the right by k steps, where k is non-negative.Example 1:Input: [1,2,3,4,5,6,7] and k = 3Output: [5,6,7,1,2,3,4]Explanation:rotate 1 steps to the right: [7,1,2,3,4,5,6]rotate 2 steps to the right: [6,7,1,2,3,4,5]原创 2020-05-23 21:40:59 · 125 阅读 · 0 评论 -
【leetcode】122,买卖股票收益最大化
```cpp```cpp给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1:输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 =5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格.原创 2020-05-22 20:49:55 · 237 阅读 · 0 评论