
ACM
Berlin-98
这个作者很懒,什么都没留下…
展开
-
c++ | 力扣 | 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = “leetcode” 返回 0. s = “loveleetcode”, 返回 2. 思路: 一开始,简单粗暴,直接两层循环,依次去判断后面的有没有和他相同的。有就推出循环,循环到头(等于字符串长度)就是没有相同的,可以输出。但是带来的问题是类似于“cc”这种,第一个c判断有重复的了,但是第二个...原创 2019-07-19 18:55:03 · 272 阅读 · 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 · 348 阅读 · 0 评论 -
c++|力扣|从排序数组中删除重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 思路: 一开始考了vecto...原创 2019-07-11 20:59:50 · 502 阅读 · 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 · 366 阅读 · 0 评论 -
c++ | 力扣 | 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 思路: 正常只需要在最后一位+1即可,但是主要要考虑9的情况。一开始想,我要不要转成数字,然后+1,然后再%10 /10...原创 2019-07-15 08:27:50 · 975 阅读 · 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 · 597 阅读 · 0 评论 -
c++ | 力扣 | 存在重复元素
给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 输入: [1,2,3,1] 输出: true 直观思路:搞一个数组,然后根据对应下标++,变成2了就true了。但是问题就是,示例中就从一开始,但要是[100,101]呢。所以数组根本没法定大小。 是否有重复元素,可以考虑排序,排序后重复的就相...原创 2019-07-14 16:32:19 · 481 阅读 · 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 · 392 阅读 · 0 评论 -
C++|力扣|买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获...原创 2019-07-13 10:56:49 · 328 阅读 · 0 评论 -
枚举----二分枚举
第一题 题目描述 走进世博园某信息通信馆,参观者将获得前所未有的尖端互动体验,一场充满创想和喜悦的信息通信互动体验秀将以全新形式呈现,从观众踏入展馆的第一步起,就将与手持终端密不可分,人类未来梦想的惊喜从参观者的掌上展开。在等候区的梦想花园中,参观者便开始了他们奇妙的体验之旅,等待中的游客可利用手机等终端参与互动小游戏,与梦想剧场内的虚拟人物Kr. Kong 进行猜数比赛。当屏幕出现一个整数X时,...原创 2019-02-17 19:59:41 · 1366 阅读 · 0 评论 -
枚举----暴力枚举
第一题 题目描述 由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。 比如: 210 x 6 = 1260 8 x 473 = 3784 27 x 81 = 2187 都符合要求。 如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。 思路 暴力枚举,四重循环, abcd的值分别从0到9开始 ,然后判断abcd不能相等,然后在不相...原创 2019-02-16 13:53:41 · 5535 阅读 · 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 · 4828 阅读 · 3 评论