
leetcode
issac199854
种子不是一朝一夕就能发芽结出果实 而你手中的苹果耽搁了时间就不再好吃了
展开
-
求字符串中的单词个数
int countSegments(char* s) { int length = strlen(s); if(length == 0 || s == NULL) { return 0; } int count = 0; for(int i = 0;i<length;i++) { if(s[i]...原创 2018-12-27 22:54:06 · 1089 阅读 · 0 评论 -
leetcode题解
5.最长回文子串11. 盛最多水的容器41. 缺失的一个正数53. 最大子序和62. 不同路径121. 买卖股票的最佳时机152. 乘积最大子序列172. 阶乘后的零174. 地下城游戏198. 打家劫舍213.打家劫舍II234.回文链表338. 比特位计数303. 区域和检索 - 数组不可变647. 回文子串650. 只有两个键的键盘680. 验证回文字符串 Ⅱ...原创 2019-04-16 12:43:10 · 391 阅读 · 0 评论 -
42. 接雨水
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6第一种解法:其实是用黑色和蓝色的面积和减去黑...原创 2019-04-16 13:51:02 · 383 阅读 · 0 评论 -
13. 罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12...原创 2019-04-16 14:46:31 · 227 阅读 · 0 评论 -
阶乘后的零&&阶乘后倒数第一个非零数字
给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.在1~9这9个数字里面,只有5和一个偶数才可以乘积得到0,遇到一个%10为0的数就多一个0,所以就可以以5来判断这个结果,如下:int trailingZeroes(int n){...原创 2019-04-13 19:39:54 · 650 阅读 · 0 评论 -
415. 字符串相加
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。 class Solution { public: string addStrin...原创 2019-04-21 15:52:03 · 211 阅读 · 0 评论 -
347. 前K个高频元素
给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。cla...原创 2019-04-27 19:39:31 · 397 阅读 · 0 评论 -
260. 只出现一次的数字 III
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。示例 :输入: [1,2,1,3,2,5]输出: [3,5]注意:结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?class Solution {public: vector&...原创 2019-05-04 20:39:01 · 228 阅读 · 0 评论 -
146. LRU缓存机制
运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数...原创 2019-05-21 17:01:07 · 251 阅读 · 0 评论 -
3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所...原创 2019-08-18 16:28:44 · 186 阅读 · 0 评论 -
6. Z字形转换
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:...原创 2019-08-20 00:27:01 · 221 阅读 · 1 评论 -
11. 盛最多水的容器
给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色...原创 2019-04-16 12:20:25 · 256 阅读 · 0 评论 -
atoi的模拟实现
输入: “4193 with words”输出: 4193解释: 转换截止于数字 ‘3’ ,因为它的下一个字符不为数字。示例 4:输入: “words and 987”输出: 0解释: 第一个非空字符是 ‘w’, 但它不是数字或正、负号。因此无法执行有效的转换。示例 5:输入: “-91283472332”输出: -2147483648解释: 数字 “-91283472332...原创 2019-04-16 00:39:48 · 290 阅读 · 0 评论 -
647. 回文子串
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: “abc”输出: 3解释: 三个回文子串: “a”, “b”, “c”.示例 2:输入: “aaa”输出: 6说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”.用到了之前的求最长回...原创 2019-04-12 17:10:18 · 446 阅读 · 0 评论 -
求字符串中第一个只出现一次的字符下标
本题有多种解法,我使用的是哈希表结构,一开始将字符串遍历一遍,将所有字符的次数记录一次,第二次遍历从前往后找次数为1的下标,找到就返回。class Solution {public: int FirstNotRepeatingChar(string str) { if(str.empty()) { return -1;...原创 2018-12-27 23:47:40 · 1138 阅读 · 0 评论 -
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
class Solution {public: int singleNumber(vector<int>& nums) { int value = 0; for (int i = 0; i<nums.size(); ++i) value = value^nums[i];//利用异或特性,使得出现了两次的数字的二进制位始终为0,最后一个单独的数字与0异或就...原创 2019-01-25 23:31:38 · 2263 阅读 · 0 评论 -
字符串反转
class Solution {public: void reverseString(vector<char>& s) { int left = 0; int right = s.size()-1;//注意这里的下标 while(left<right) { swap(s[le...原创 2019-01-22 21:45:51 · 586 阅读 · 0 评论 -
字符串相加
class Solution {public: string addStrings(string num1, string num2) { if(num1.size()<num2.size()) //这里默认num1的长度大num2 num1.swap(num2); int LSize = num1.siz...原创 2019-01-23 14:33:26 · 1010 阅读 · 0 评论 -
908. 最小差值 I
class Solution {public: int smallestRangeI(vector<int>& A, int K) { if(A.size() == 1 || A.size() == 0) { return 0; } sort(A.begin(),A.end());...原创 2019-04-04 22:58:50 · 394 阅读 · 0 评论 -
41. 缺失的一个正数
通过下标和该值相结合的方式来查找这个值。class Solution {public: int firstMissingPositive(vector<int>& nums) { for(int i = 0;i<nums.size();) { if(nums[i]>0 && nums...原创 2019-04-04 23:52:44 · 208 阅读 · 0 评论 -
5.最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”class Solution {public: string longestPalindrome(string s) { if...原创 2019-04-11 01:10:41 · 207 阅读 · 0 评论 -
680. 验证回文字符串 Ⅱ
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: “aba”输出: True示例 2:输入: “abca”输出: True解释: 你可以删除c字符。class Solution {public: bool _validPalind(string s,int left,int right) { while(left...原创 2019-04-12 01:19:23 · 203 阅读 · 0 评论 -
234.回文链表
请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode...原创 2019-04-12 15:30:45 · 506 阅读 · 0 评论 -
696. 计数二进制子串
给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: “00110011”输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。另外,“...原创 2019-04-12 16:15:01 · 215 阅读 · 0 评论 -
468. 验证IP地址
编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(".")分割。比如,172.16.254.1;同时,IPv4 地址内的数不会以 0 开头。比如,地址 172.16.254.01 是不合法的。IPv6 地址由8组16进制的数字来表示,每组表示 16 比特。这些组数字通过 ("...原创 2019-09-13 14:31:38 · 368 阅读 · 0 评论