自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 leetcode15、三数之和

题目描述:给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]题目解析:本题可以先进行排序,然后固定一个指针,剩下采用双...

2021-09-02 16:03:47 135

原创 leetcode46、全排列

题目描述:给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]题目解析:本题可以用到回溯算法,基于深度优先遍历,同时用一个数组记录遍历路径。//ret...

2021-09-02 14:27:33 110

原创 leetcode43、字符串相乘

题目描述:给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例2:输入: num1 = "123", num2 = "456"输出: "56088"题目解析:方法一:可以采用平时手算的方式,但是时间复杂度高(mn+m+n)方法二:如果num1的长度为len1,num2的长度为len2,那么相乘的结果长度为最大为len1...

2021-08-25 10:41:24 130

原创 leetcode85、最大矩形

题目描述:给定一个仅包含0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例 1:输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:6解释:最大矩形如上图所示。题目解析:本题与柱状图中最大的矩形几乎一致,求二维矩阵中矩形的最大面积,可以将每列作为一个柱形就可以转化成求.

2021-08-23 16:36:35 121

原创 leetcode554、砖墙

题目描述:你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和相等。你现在要画一条 自顶向下 的、穿过 最少 砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。给你一个二维数组 wall ,该数组包含这堵墙的相关信息。其中,wall[i] 是一个代表从左至右每块砖的宽度的数组。你需要找出怎样画才能使这条线 穿过的砖块数量最少 ,并且返回 穿过的砖块数量

2021-08-19 10:59:08 84

原创 leetcode135、分发糖果

题目描述:老师想给孩子们分发糖果,有 N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例1:输入:[1,0,2]输出:5解释:你可以分别给这三个孩子分发 2、1、2 颗糖果。示例2:输入:[1,2,2]输出:4解释:你可以分别给这三个孩子分发 1、2、1 颗糖果。...

2021-08-17 16:27:05 54

原创 leetcode5、最长回文字串

题目描述:给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a"题目解析:最长回文字串有几个特点:1、1个字符一定是回文字串;2、首尾字符相同;3、去除首尾后的字符串依旧是回文串因此可以使用动态规划法,开辟一个二维数组,s[i][j

2021-08-12 00:03:03 106

原创 leetcode200、岛屿数量

题目描述:给你一个由'1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]输出:1示例 2:输入:grid...

2021-08-11 23:27:33 66

原创 leetcode739、每日温度

题目描述:请根据每日 气温 列表 temperatures,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出:[1,1,1,0]示例 3:输入: temperatures = [30,60,90]输出: [1,1...

2021-08-11 20:07:54 157

原创 leetcode4、寻找两个正序数组的中位数

题目描述:给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。题解:采用双指针的方式,p1指向数组1,p2指向数组2,一次比较p1,p2,将较小的值放入新开辟的数组中,然后递增,直到两指针都超出边界double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size){ int* stack = (int*)malloc(...

2021-07-15 10:25:58 58

原创 leetcode3、重复字符的最长子串

题目描述:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。题解:采用滑动窗口加哈希表的方式,采用前后两个指针,后指针每走一步,都在哈希表中记录走过的路径,若遇到重复,则前面的指针向后走一步,然后对应哈希表减1.//整个过程是前指针不动,后指针递增,若遇到重复的数,则后指针不动,前指针递增int lengthOfLongestSubstring(char * s){ int Hashtable[CHAR_MAX] = { 0 };//定义哈希表 int p = 0, q ...

2021-07-15 10:09:10 194

原创 leetcode55、跳跃游戏

题目描述:给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不...

2021-05-12 10:48:07 167

原创 leetcode45、跳跃游戏 II

题目描述:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。示例 1:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳1步,然后跳3步到达数组的最后一个位置。示例 2:输入: [2,3,0,1,4]输出: 2解题思路:采用贪心算法,...

2021-05-12 10:12:29 58

原创 leetcode93、复原 IP 地址

题目描述:给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。示例 1:输入:s.

2021-05-11 18:07:28 81

原创 leetcode54、螺旋矩阵

题目描述:给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]解题思路:采用深度优先算法(或者回溯,我也不知道该叫啥,反正就是递归,归就完了),回溯...

2021-05-11 16:43:21 100

原创 leetcode547、省份数量

题目描述:有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。示例 1:输入:i

2021-05-11 11:18:15 57

原创 leetcode394、字符串解码

题目描述:给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像3a或2[4]的输入。示例1.输入:s = "3[a]2[bc]"输出:"aaabcbc"...

2021-05-09 09:34:14 181

原创 leetcode32、给你一个只包含 ‘(‘ 和 ‘)‘ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。

执行用时:12 ms, 在所有C提交中击败了18.93%的用户内存消耗:16.9 MB, 在所有C提交中击败了5.13%的用户//本题的思路就是利用两个堆栈,当遇到左括号时,将其下标压入stack栈中,当遇到右括号时,//弹出前一个左括号的下标,同时将左右括号的下标都保存在堆栈resstack中,最后将resstack进行排序,//连续的括号对数其下标也应该是连续的,所以求出下标连续的长度就是最终结果int complare(const void*a,const void* b...

2021-05-07 15:37:51 1095

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除