ACM
Berlin-98
这个作者很懒,什么都没留下…
展开
-
c++ | 力扣 | 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = “leetcode”返回 0.s = “loveleetcode”,返回 2.思路:一开始,简单粗暴,直接两层循环,依次去判断后面的有没有和他相同的。有就推出循环,循环到头(等于字符串长度)就是没有相同的,可以输出。但是带来的问题是类似于“cc”这种,第一个c判断有重复的了,但是第二个...原创 2019-07-19 18:55:03 · 248 阅读 · 0 评论 -
c++ | 力扣 | 整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路:这个溢出到底什么意思:2^31 − 1 = 2147483647 ,...原创 2019-07-19 17:17:56 · 330 阅读 · 0 评论 -
c++|力扣|从排序数组中删除重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。思路:一开始考了vecto...原创 2019-07-11 20:59:50 · 486 阅读 · 0 评论 -
c++ | 力扣 | Fizz Buzz
写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。思路:很直观,先判断是不是同时3和5的倍数,然后判断3的倍数,5的倍数。遇到的问题是c++的vector不是很熟练。【push_back()和insert() 的区别】insert()的第一...原创 2019-07-15 09:05:24 · 343 阅读 · 0 评论 -
c++ | 力扣 | 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。思路:正常只需要在最后一位+1即可,但是主要要考虑9的情况。一开始想,我要不要转成数字,然后+1,然后再%10 /10...原创 2019-07-15 08:27:50 · 956 阅读 · 0 评论 -
c++ | 力扣 | 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。思路:双指针,不是0就按部就班拍,是0记录有多少0。最后一起补。代码:class Solution {public: void moveZer...原创 2019-07-14 18:15:01 · 575 阅读 · 0 评论 -
c++ | 力扣 | 存在重复元素
给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true直观思路:搞一个数组,然后根据对应下标++,变成2了就true了。但是问题就是,示例中就从一开始,但要是[100,101]呢。所以数组根本没法定大小。是否有重复元素,可以考虑排序,排序后重复的就相...原创 2019-07-14 16:32:19 · 455 阅读 · 0 评论 -
c++ | 力扣 | 旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]思路:最直观的一个个挪,就是模拟右移过程。总共移动k次...原创 2019-07-13 19:53:18 · 376 阅读 · 0 评论 -
C++|力扣|买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获...原创 2019-07-13 10:56:49 · 306 阅读 · 0 评论 -
枚举----二分枚举
第一题题目描述走进世博园某信息通信馆,参观者将获得前所未有的尖端互动体验,一场充满创想和喜悦的信息通信互动体验秀将以全新形式呈现,从观众踏入展馆的第一步起,就将与手持终端密不可分,人类未来梦想的惊喜从参观者的掌上展开。在等候区的梦想花园中,参观者便开始了他们奇妙的体验之旅,等待中的游客可利用手机等终端参与互动小游戏,与梦想剧场内的虚拟人物Kr. Kong 进行猜数比赛。当屏幕出现一个整数X时,...原创 2019-02-17 19:59:41 · 1328 阅读 · 0 评论 -
枚举----暴力枚举
第一题题目描述由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。比如:210 x 6 = 12608 x 473 = 378427 x 81 = 2187都符合要求。如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。思路暴力枚举,四重循环, abcd的值分别从0到9开始 ,然后判断abcd不能相等,然后在不相...原创 2019-02-16 13:53:41 · 5338 阅读 · 2 评论 -
C++实现实现全排列
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]思路:回溯+递归以一个ABC的图为例。首先从ABC中选一个,可以选A、B、C分别是第二层的绿色表示。然后则剩余BC 、AC和BA。对于每一个分支,依次选择其中一个与之前的进行连接,过程直到...原创 2019-07-25 20:08:27 · 4775 阅读 · 3 评论