
leetcode
无提丶
这个作者很懒,什么都没留下…
展开
-
对称二叉树
给定一个二叉树,检查它是否是镜像对称的。题解:(沿用相同树的思想,将二叉树拆分成两个树来比较)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solu原创 2020-06-01 18:13:46 · 159 阅读 · 0 评论 -
相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。题解一:(递归)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} *原创 2020-06-01 15:43:46 · 135 阅读 · 0 评论 -
拥有最多糖果的孩子
给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。示例:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,true] 解释:孩子 1 有 2 个糖果,如果他得到所有额原创 2020-06-01 09:28:39 · 180 阅读 · 0 评论 -
删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入:[]输出:[]题解一:借助vector的erase方法,配合unique()删除排序重复元素class Solution {public: ListNode* deleteDuplicates(ListNode* head) // 借助vector的erase方法,配合unique()删除排序重复元素 { if原创 2020-05-25 15:47:09 · 191 阅读 · 0 评论 -
加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [9,9,9]输出: [1,0,0,0]解释: 输入数组表示数字 1000。题解:class Solution {public: vector<int> plusOne(vector<i原创 2020-05-22 14:27:36 · 165 阅读 · 0 评论 -
搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。假设数组中无重复元素。示例1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例3:输入: [1,3,5,6], 7输出: 4题解:class Solution {public: int searchInsert(vector<int>& nums, int target) {原创 2020-05-19 15:56:12 · 158 阅读 · 0 评论 -
实现 strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例:输入: haystack = "hello", needle = "lo"输出: 3说明:当 needle 是空字符串时我们应当返回 0 。题解:class Solution {public: int strStr(string haystack, string ne原创 2020-05-19 14:49:32 · 197 阅读 · 0 评论 -
合并两个有序链表
借助一个中间list,用list的sort()方法进行排序。原创 2020-05-18 13:32:47 · 137 阅读 · 0 评论 -
有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足: 1.左括号必须用相同类型的右括号闭合。 2.左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例1:输入:"()[]{}"输出:true示例2:输入:"{()}"输出:true示例3:输入:"({)}"输出:false示例4:输入:"(("输出:false题解:class Solution {public: b原创 2020-05-18 11:32:56 · 139 阅读 · 0 评论 -
罗马数字转整数
示例:输入: "MCMXCIV"输出: 1994解释: M = 1000, CM = 900, XC = 90, IV = 4.题解:class Solution {public: int romanToInt(string s) { int num = 0; for (int i = 0; i < s.size(); ) { string tmp_s = s.substr(i, 1); .原创 2020-05-15 14:29:29 · 262 阅读 · 0 评论 -
回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例1:输入:12输出:true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。注意:不将整数转换成字符串题解:class Solution {public: bool isPalindrome(int x) { if (x < 0) { r原创 2020-05-15 13:21:31 · 120 阅读 · 0 评论 -
整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例2:输入:-123输出:-321注意: 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。 请根据这个假设,如果反转后整数溢出那么就返回 0。题解:class Solution {public: int reverse(int x) { stack<string> ss; str原创 2020-05-15 12:52:13 · 95 阅读 · 0 评论