
LeetCode
Fighting++++
此博客用来做个人的学习笔记和学习资料分享
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode 123 买卖股票的最佳时机 III (C++)
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3 。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候原创 2020-07-12 12:36:52 · 294 阅读 · 0 评论 -
leetcode 93 ip地址
定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 ‘.’ 分隔。示例:示例:输入: “25525511135”输出: [“255.255.11.135”, “255.255.111.35”] class Solution {public: bool goodNum(string &temp) { if(temp.size()>1&&原创 2020-07-10 15:46:53 · 275 阅读 · 1 评论 -
leetcod 64(C++附解释)
64. 最小路径和给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。 class Solution {public: int minPathSum(vec...原创 2020-03-30 22:03:48 · 265 阅读 · 0 评论 -
leetcode61旋转链表(C++思路清晰)
一杯茶,一包烟,刷个抖音刷半天,一道题目做一天给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->...原创 2020-03-20 10:41:35 · 166 阅读 · 0 评论 -
leetcode 60. 第k个排列(C++超超详细,易理解)
给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]。示例 1:输入: n = 3, k = 3输出: “213...原创 2020-03-19 17:10:15 · 1104 阅读 · 1 评论 -
leetcode59-螺旋矩阵(C++和python版本)
螺旋矩阵 II难度中等给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]] class Solution {public: vector<vector<int>> generateMatrix(i...原创 2020-03-17 20:39:20 · 211 阅读 · 0 评论 -
leetcode 58最后一个单词的长度(C++)
最后一个单词的长度给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: “Hello World”输出: 5 class Solution {public: in...原创 2020-03-16 23:14:46 · 193 阅读 · 1 评论 -
leetcode 55. 跳跃游戏(C++)
最近脑袋生锈了,正在用砂纸打磨。。。。。给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,...原创 2019-10-17 21:16:19 · 200 阅读 · 0 评论 -
leetcode50. Pow(x, n)(C++实现)
实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 32 位有...原创 2019-09-05 21:10:40 · 296 阅读 · 0 评论 -
LeetCode49. 字母异位词分组(C++有注释)
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]class Solution { public: vector<...原创 2019-09-02 20:15:20 · 284 阅读 · 0 评论 -
leetcode 38. 报数(C++)
报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one 1” (“一个二” , “一个一...原创 2019-08-11 21:05:52 · 234 阅读 · 0 评论 -
29.LeetCode.两数相除(C++两种解法)
给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2说明:被除数和除数均为 32 位有符号...原创 2019-07-27 20:14:14 · 591 阅读 · 1 评论 -
LeetCode 19.删除链表的倒数第n个结点(C++)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。 /** * Definition for singly-linked list. * struct ListNode...原创 2019-07-21 23:51:57 · 139 阅读 · 0 评论 -
LeetCode34. 在排序数组中查找元素的第一个和最后一个位置(C++亲测)
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], targ...原创 2019-07-30 21:44:57 · 351 阅读 · 0 评论 -
leetcode 28. 实现strStr()(亲测三种最简单解法)
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba...原创 2019-07-25 17:32:46 · 206 阅读 · 0 评论 -
LeetCode33. 搜索旋转排序数组(C++)
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], targ...原创 2019-07-30 11:10:26 · 235 阅读 · 0 评论 -
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
#检查溢出2^31-1=2147483647, INT_MAX-2^31=-2147483648 INT_MINclass Solution {public: int reverse(int x) { long int ans=0; //int flag=x>0?1:-1; while(x) { ...原创 2019-06-03 20:25:06 · 3571 阅读 · 0 评论 -
Leetcode 8. 字符串转换整数 (atoi)(C++编写,有注释)
class Solution{ public: int fun(string str,int i,int flag)//将数字字符串转换成数字 { long sum=0; while(str[i]-'0'>=0&&str[i]-'0'<=9)//数字字符判断 ...原创 2019-07-08 10:38:31 · 149 阅读 · 1 评论 -
LeetCode14 最长公共前缀(C++)
C++class Solution {public: string longestCommonPrefix(vector<string>& strs) { if(strs.size()==0) return "" ; if(strs.size() == 1) return strs[0]; ...原创 2019-07-14 11:27:34 · 229 阅读 · 0 评论 -
letcode之11 盛最多水的容器(亲测C++和python版本)
python3class Solution:def maxArea(self, height: List[int]) -> int: max_area=0 area=0 i=0 j=len(height)-1 while(i<j): k=j-i if height[i]<=height...原创 2019-07-10 16:04:41 · 246 阅读 · 0 评论 -
leetcode15 三个数之和(C++)
class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { set<vector<int>> out;//集合sort(nums.begin(),nums.end());for(int i = 0; i<nums...原创 2019-07-15 09:57:42 · 183 阅读 · 0 评论 -
leetcode12. 整数转罗马数字(亲测python和C++)
python3class Solution:def intToRoman(self, num: int) -> str: shuzi=[1000,900,500,400,100,90,50,40,10,9,5,4,1] strRoman=["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"] str=...原创 2019-07-11 10:29:50 · 241 阅读 · 0 评论 -
leetcode13. 罗马数字转整数(亲测python和C++)
python3class Solution:def romanToInt(self, s: str) -> int: shuzi=[1000,900,500,400,100,90,50,40,10,9,5,4,1] strRoman=["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"] sum=0...原创 2019-07-11 11:42:23 · 208 阅读 · 0 评论 -
C++16. 最接近的三数之和(亲测,最易理解)
class Solution {public: int threeSumClosest(vector<int>& nums, int target) { sort(nums.begin(),nums.end()); int c=INT_MAX; int result=...原创 2019-07-16 11:29:32 · 655 阅读 · 0 评论 -
leetcode 20. 有效的括号(C++)
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)...原创 2019-07-23 20:27:46 · 199 阅读 · 0 评论 -
leetcode21. 合并两个有序链表(C++)
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4/** * Definition for singly-linked list. * struct ListNode { * int val; * ...原创 2019-07-23 20:29:53 · 247 阅读 · 0 评论 -
C++17LeetCode 电话号码的字母组合(亲测可行,有注释)
class Solution {public: map<char,string> mp={{'2',"abc"},{'3',"def"},{'4',"ghi"},{'5',"jkl"},{'6',"mno"},{'7',"pqrs"},{'8',"tuv"},{'9',"wxyz"}}; vector<string> ans; void fun(string te...原创 2019-07-19 11:50:59 · 301 阅读 · 0 评论 -
leetcode 18. 四数之和 (C++)
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[[...原创 2019-07-20 15:58:57 · 276 阅读 · 1 评论 -
LeetCode31.下一个排列(一看就懂的C++算法)
class Solution {public: void nextPermutation(vector<int>& nums) { //i为数组倒数第二个值,j为倒数第一个值 int n = nums.size(), i = n - 2, j = n - 1; //找出倒数第二个值比倒数第一个值要小的时候,此时找到确认值...原创 2019-07-30 11:06:52 · 478 阅读 · 0 评论 -
力扣题库:两数之和
c语言版本int* twoSum(int* nums, int numsSize, int target) {static int a[2]= { 0 };int i, j;for (i=0;i<numsSize-1;i++){ for (j = i + 1; j < numsSize; j++) { if (nums[i] + nums[j] == target)...原创 2019-05-12 10:29:10 · 663 阅读 · 0 评论