![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
C_ice_
这个作者很懒,什么都没留下…
展开
-
leet136.只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。栈class Solution {public: int singleNumber(vector<int>& nums) { stack<int> mystack; sort(nums.begin(),nums.end()); for(int i=0;i<nums.size();i++) {原创 2021-04-26 14:22:49 · 76 阅读 · 0 评论 -
leetcode104.二叉树最大深度
bool isSymmetric(TreeNode* root) { return check(root,root); } bool check(TreeNode *r,TreeNode *l) { if(!r||!l) return false; if(!r&&!l) return true; return check(r.left,l.right)&&ch原创 2021-04-26 09:50:44 · 85 阅读 · 0 评论 -
leetcode70.爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。动态规划爬到第n层的方法是爬到第n-1和n-2的方法的和;class Solution {public: int climbStairs(int n) { int l1,l2=1,l3=1; for(int i=1;i<n;i++) { l1=l2;原创 2021-04-19 17:39:03 · 93 阅读 · 0 评论 -
leetcode.最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。贪心算法设置一个i之前的i-1个元素和sum和最大值ma,如果之前和大于0,那么证明之前的序列为有用序列,把它加到上面,如果之前和小于0,那么证明为无用序列,则放弃之前的序列,从新开始寻找序列。class Solution {public: int maxSubArray(vector<int>& nums) { int ma=nums[0];原创 2021-04-15 16:35:08 · 57 阅读 · 0 评论 -
leetcode21.合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。递归方法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} *原创 2021-04-15 11:02:26 · 36 阅读 · 0 评论 -
leetcode141. 环形链表
给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶:你能用 O(1)(即,常量)内存解决此问题吗?方法一:利用hash表,遍历链表,如果哈希表中没有当前节点原创 2021-03-24 11:03:34 · 91 阅读 · 0 评论 -
leetcode20. 有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。class Solution {public: bool isValid(string s) { stack <char> sta; unordered_map<char,char>map= { {')','('},原创 2021-03-23 10:31:35 · 83 阅读 · 0 评论 -
leetcode191. 位1的个数
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。方法一:逐位检查将二进制数的每一位分别与2^i相&:class Solution {public: int hammingWeight(uint32_t n) { int ret = 0; for (int i = 0; i < 32; i++) { if (n & (1 << i原创 2021-03-22 13:20:49 · 76 阅读 · 0 评论 -
leetcode9.回文数
类似题目:原创 2021-03-17 10:35:05 · 61 阅读 · 0 评论 -
leetcode7.整数反转
类似题目:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。关键点:溢出判断假设有1147483649这个数字,它是小于最大的32位整数2147483647的,但是将这个数字反转过来后就变成了9463847411,这就比最大的32位整数还要大了,这样的数字是没法存到int里面的,所以肯定要返回0(溢出了)。甚至,我们还需要原创 2021-03-17 10:33:48 · 155 阅读 · 0 评论 -
leetcode665.非递减数列
给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。class Solution {public: bool checkPossibility(vector<int>& nums) { int count=0; for(int i=原创 2021-03-16 16:08:41 · 144 阅读 · 0 评论 -
leetcode1.两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。//暴力解法class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int i,j; for(i=0;i&原创 2021-03-16 13:08:58 · 85 阅读 · 0 评论