自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通配符匹配

题目描述:给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘’ 的通配符匹配。‘?’ 可以匹配任何单个字符。'’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。来源:力扣(LeetCode)链接:https://...

2020-03-30 18:39:58 369

原创 加油站

题目描述;在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组...

2020-03-29 11:41:33 257 1

原创 跳跃游戏

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

2020-03-28 20:25:00 239

原创 分发饼干

题目描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口值...

2020-03-27 21:17:24 180

原创 判断子序列

题目描述:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例...

2020-03-26 17:51:58 135 1

原创 买卖股票的最佳时机 II

题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。由于可以多次购买股票,并且需要利润最大,这样只需要在所有股票赔钱时不买,在股票赚钱时卖出即可。int maxProfit(int* prices, int...

2020-03-25 18:33:10 64

原创 恢复二叉搜索树

题目描述:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。参考代码判断错误节点的方法是按照中序遍历,选择出值大小相反的节点。在遍历时,记下错误的节点,若为相邻节点,则输出之后互换,若不相邻,则记下第一个节点处的前一个节点(此时这个节点比当前节点大,是错误节点),第二个节点处为错误节点(比前一个节点大),最后将这两个互换,输出。/** * Definitio...

2020-03-24 12:11:30 89

原创 不同的二叉搜索树

题目描述给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。示例:输入: 3输出:[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]递归法自己想不明白,看了其他人的办法,加了一些注释。需要构建的二叉树数量为卡特兰数,用递归的办法构建子树,不断以i为根节点进行...

2020-03-23 21:06:13 95

原创 二叉树的中序遍历

题目描述:给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3]输出: [1,3,2]递归法设置树的数组以及整数数组,以树的长度为数组长度。并且进行中序遍历,将中序遍历得到的数输入数组,并且把得到的数输出。参考void inorder(struct TreeNode *root, int *returnSize, int *res){ //中序遍历函数...

2020-03-22 20:25:20 176 1

原创 二叉树的最大深度

题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。递归法遍历每一个子树,判断不同子树最大的深度,不断加在总子树的深度上,最后加在一起。/** * Definition for a binary tree node. * struct TreeNode { * int val; ...

2020-03-21 18:12:01 62

原创 对称二叉树

题目描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是 [1,2,2,null,3,null,3] 则不是镜像对称的递归法首先判断当前根节点是否相同,之后判断两个树的左右节点是否相同,若都为空则也判断为相同,若有一项不相同则输出为否。/** * Definition for a binary tree node. * s...

2020-03-20 17:10:29 58

原创 相同的树

题目描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。用递归法遍历所有子树的所有节点,当有其中一个节点不满足时输出false,所有节点都满足则输出true。/** * Definition for a binary tree node. * struct TreeNode { * int val; * ...

2020-03-19 11:18:32 61

原创 正则表达式匹配

题目描述:给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘’ 的正则表达式匹配。’.’ 匹配任意单个字符,’’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = “aa”...

2020-03-18 21:19:57 153

原创 最长回文子串

题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-su...

2020-03-17 12:30:20 59

原创 无重复字符的最长子串

题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “...

2020-03-16 19:17:16 74

原创 有效的括号

题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-parentheses类似于判断计算算式中所有的括...

2020-03-15 17:26:01 65

原创 最长公共前缀

题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。来源:力扣(LeetCode)链接:htt...

2020-03-14 21:48:57 87

原创 罗马数字转整数

题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列...

2020-03-13 16:32:56 93

原创 合并k个排序链表

题目描述:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6之前进行过合并两个排序链表的做法,在合并k个排序链表的时候,逐步将前两个链表合并成新的排序链表,再向后不断延伸,最终合...

2020-03-12 17:59:18 110

原创 删除链表的倒数第N个节点

题目描述:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.设置链表中的两个指针,使得前一个指针比后一个指针多走了n个节点,这样当前指针走到链表尽头,即前指针的下一项为空时,这时距离为n的后指针的下一个...

2020-03-11 17:26:41 334

原创 链表两数相加

题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开...

2020-03-10 21:11:46 134

原创 判断是否为环形链表

题目描述:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/linked-list-cycle著作权归领扣网络所有。商业转载请联系官方授权,非商业转载...

2020-03-09 20:48:36 149

原创 删除排序链表中的重复元素 c语言

题目描述:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3基本思路:设置一个指针指向原链表,在原链表上进行删除。若当前元素与下一个元素相同,则将下一个元素删除,直接指向下下个元素。若两个元素不同,则...

2020-03-08 18:09:46 1379 1

原创 合并两个有序链表

题目描述(来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists)将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4...

2020-03-07 21:59:59 1086

原创 c语言 买股票的最佳时机

题目描述:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。...

2020-03-06 22:19:14 825

原创 c语言 最接近的三数之和

题目描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).来源:力扣(LeetCode)链...

2020-03-05 22:55:40 770

原创 三数之和 c语言

题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4]...

2020-03-04 21:43:54 1783 2

原创 利用指针和数组移除元素

使用指针和数组结合的方法,设置变量i作为循环,令数组当中每一个数都进行判别。设置指针p改变数组元素,当循环时发现与val变量相同的元素时,跳过,指针仍旧不变。当发现与val变量不同的元素时,指针将当前所指的地址变为该元素,并且指向下一个地址。直到最后,指针令所有不属于查询元素的数按顺序排列,跳过所有与val相同的元素,形成新数组。计算数组中剩余元素的数量时,只要将当前所属的地址p减去数组的最初...

2020-03-03 15:51:52 2175

原创 c语言删除排序数组中的重复项

题目要求在原地删除重复出现的元素,利用这一点进行编程。设置整数s作为“实际排序数组”的序号,即通过比较,将无重复的有序数组直接覆盖在原数组上,用s标记当前有序数组的编号。由于原数组为有序数组,可以由之后需要比对的数字依次与排序数组的最后一个数字进行对比,从而判断该数字是否应该排列进去。以[1,1,2]为例,默认第一个数“1”为实际排序数组的第一个数字,第二个数为“1”,与当前排序数组的最后一个...

2020-03-02 20:14:03 2168

原创 c语言找两数之和

小白第一次做两数之和题目,用了上课学的C语言。整体思路比较简单,遍历数组按顺序求和并判别是否等于目标数。一开始输出时得不出两个数的和,经过查找得知需要将returnSize设置为2,才能读取返回数组中的两个序号。后来又出现上图中的错误,由这里得知了错误原因,将返回的数组设置为static数组,使得函数结束之后数组不会消失,能够返回。最终运行代码如下:/** * Note: The ret...

2020-03-01 17:18:11 1406

空空如也

空空如也

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

TA关注的人

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