自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [动态规划] 5. 最长回文子串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。 思路:用动态规划的方法,参考题解 class Solution { public: string longestPalindrome(string s) { int len=s.size(); if(len==0||len==1) ...

2019-07-23 17:11:13 147

原创 [*map&哈希] 3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 方法根据官方题解: class Solution { public: int lengthOfLongestSubstring(string s) { int n = s.length(), ans = 0; int index[128] = {}; // current...

2019-07-23 16:41:35 151

原创 12. 整数转罗马数字

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

2019-07-23 15:34:54 126

原创 [递归&字符串] 22. 括号生成

给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 思路:用递归的方法生成所有可能的括号,每生成一个添加到一个vector中 class Solution { public: vector<string> res; vector<string> generateParenthesis(int n) { ...

2019-07-23 15:14:54 144

原创 [map&字典] 17. 电话号码的字母组合

给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 class Solution { public: vector<string> letterCombinations(string digits) { vector<string> s; st...

2019-07-23 14:29:45 277

原创 [map/哈希/异或] 136/137/260 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 方法一:直接异或全部。 class Solution { public: int singleNumber(vector<int>& nums) { int sum...

2019-07-18 15:57:14 202

原创 [*new指针] 2. 两数相加

给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0开头。 class Solution { public: ListNode* addTwoNumbers(ListNod...

2019-07-18 11:19:31 249

原创 [递归] 101. 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树[1,2,2,3,4,4,3]是对称的。 class Solution { public: bool isSame(TreeNode* root1,TreeNode* root2) { if(root1==nullptr&&root2==nullptr) { ...

2019-07-17 23:22:43 148

原创 [数组] 66. 加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 方法很简单,注意vector的插入函数和999这种全是9的边界条件: class Solution { public: vector<int> plusOne(vector<i...

2019-07-17 19:10:23 98

原创 28. 实现strStr()

实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 简单粗暴解法,时间复杂度m*n,另有KMP等解法可以看一下: class Solution { public: int strStr(string haystack, st...

2019-07-17 18:41:21 98

原创 [数学] 7. 整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 判断好溢出时的边界条件: class Solution { public: int reverse(int x) { bool fuhao=x&0x80000000; int temp; int sum=0; int MAX1=(pow...

2019-07-17 18:27:51 109

原创 [* dp]53. 最大子序和

给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 暴力解决时间复杂度太高,用动态规划: 设sum[i]为以第i个元素结尾且和最大的连续子数组。假设对于元素i,所有以它前面的元素结尾的子数组的长度都已经求得,那么以第i个元素结尾且和最大的连续子数组实际上,要么是以第i-1个元素结尾且和最大的连续子数组加上这个元素,要么是只包含第i个元素...

2019-07-17 13:50:20 95

原创 [哈希&字符串] 242. 有效的字母异位词

给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。 方法一时间太长(改用哈希): class Solution { public: bool isAnagram(string s, string t) { int len1,len2; int temp,i,j,tail1; len1=s.size(); ...

2019-07-16 22:43:44 114

原创 [栈&字符串] 20. 有效的括号

给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 方法一:用栈实现(栈可以自己写,可以用STL库) class Solution { public: typedef struct stack{ cha...

2019-07-16 21:52:04 96

原创 [字符串] 14. 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 class Solution { public: string longestCommonPrefix(vector<string>& strs) { int len; int i=0; int j=0; stri...

2019-07-16 12:20:48 72

原创 21. 合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 方法一:直接将l2插入l1,时间仅超过20%。 class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* p1=l1; ListNode* ...

2019-07-16 10:46:45 94

原创 [树] 100. 相同的树

给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 方法一:递归 class Solution { public: bool isSameTree(TreeNode* p, TreeNode* q) { bool state = true; //都空 if(p==n...

2019-07-16 10:27:27 88

原创 [动态规划] 70. 爬楼梯

假设你正在爬楼梯。需要n阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定n是一个正整数。 超出时间限制方法; class Solution { public: int climbStairs(int n) { if(n==1) { return 1; ...

2019-07-16 00:21:52 86

原创 [递归] 938. 二叉搜索树的范围和

给定二叉搜索树的根结点root,返回L和R(含)之间的所有结点的值的和(即树中 X>=L&&X<=R 的X值的和)。 初始解法,全部遍历递归 class Solution { public: int rangeSumBST(TreeNode* root, int L, int R) { int sum=0; i...

2019-07-15 23:53:45 103

空空如也

空空如也

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

TA关注的人

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