- 博客(10)
- 收藏
- 关注
原创 二叉树遍历
递归 void per(TreeNode* root,vector<int>& res)//前序 { if(root==nullptr) return; res.emplace_back(root->val); per(root->left,res); per(root->right,res); } void mid(TreeNode* root,vector<int>& res)//中序 { if(root==nullptr) r
2020-10-03 15:59:41
103
原创 Leetcode刷题笔记(加一)
66.加一 题目描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 vector<int> plusOne(vector<int>& digits) { int len = digits.size(); for (int i ...
2020-01-03 10:26:34
164
原创 Leetcode刷题笔记(最后一个单词的长度)
58.最后一个单词的长度 题目描述 给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。 如果不存在最后一个单词,请返回 0 。 class Solution { public: int lengthOfLastWord(string s) { int i = s.size() - 1; if (i < 0) return 0; int count...
2020-01-02 20:12:28
122
原创 Leetcode刷题笔记(外观数列)
38.外观数列 问题描述 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。 第一反应就是递归,但是递归超时 string countAndSay(int n) { string result = ""; if (n == 1) return "1"; int count = 1; for (int i = 0; i < countAndSay(n...
2020-01-02 10:55:17
1194
原创 Leetcode刷题笔记(搜索插入位置)
35.搜索插入位置 题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 class Solution { public: int searchInsert(vector<int>& nums, int target) { for (int i =...
2020-01-01 10:43:05
180
原创 Leetcode刷题笔记(实现strStr())
28.实现strStr() 题目描述 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 (算是偷懒了?) int strStr(string haystack, string needle) { if (needle == "") return 0; ...
2020-01-01 10:25:12
100
原创 Leetcode刷题笔记(移除元素)
27.移除元素 题目描述 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 int removeElement(vector<int>& nums, int val...
2020-01-01 09:57:31
96
原创 Leetcode刷题笔记(删除数组中的重复项)
26.删除数组中的重复项 题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 int removeDuplicates(vector<int>& nums) { if(nums.size()<2) return num...
2020-01-01 09:40:14
95
原创 Leetcode刷题笔记(两数之和)
1.两数之和 问题描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 vector<int> twoSum(vector<int>& nums, int target) { vector<int&g...
2019-12-31 20:24:25
80
原创 Leetcode刷题笔记(合并两个有序链表)
合并两个有序链表 题目描述 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Soultion { pubilc: ListNode* mergeTwoLists(...
2019-12-31 20:08:52
136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人