![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
chenchenxiaojian
这个作者很懒,什么都没留下…
展开
-
leetcode-打家劫舍
题目https://leetcode-cn.com/problems/house-robber/思路一个房屋:那就偷他 =》边界两个房屋:那就偷他们之中的最大值 =》边界大于两个房屋(k>2)若偷第k间房子,那么不能偷第k-1的房子,所以结果为前K-2间房子的最大值+当前第k间房子的金额若不偷,那么结果就是前k-1间房子的最大值dp[i]表示第i间房子能偷到的最大值,方程:dp[i] = max(dp[i-1], dp[i-2] + arr[i]);code/** *原创 2021-03-30 18:52:51 · 62 阅读 · 0 评论 -
leetcode-两数之和
题目https://leetcode-cn.com/problems/two-sum/思路暴力枚举哈希表,遍历nums数组,如果哈希表中存在一个数与当前数组索引的值相加等于target的话,那么返回即可,不存在就把数组元素压入表中,数组元素的值作为key,index作为表的value特殊数据:[3,3] target = 6, res = [0,1]Code var twoSum = function (nums, target) { var map原创 2021-03-16 00:17:08 · 36 阅读 · 0 评论 -
leetcode-二叉树的层序遍历
题目https://leetcode-cn.com/problems/binary-tree-level-order-traversal/思路队列实现BFS;使用队列来存放每层的节点,从第一层开始检索,如果有孩子就压入。队列:先进先出,遍历队列的front,即可实现BFSAC代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * Tr原创 2020-05-13 22:25:00 · 154 阅读 · 0 评论 -
leetcode-最小栈
题目https://leetcode-cn.com/problems/min-stack/思路辅助栈,每次压入当前数据栈内所有元素的最小值AC代码class MinStack {public: /** initialize your data structure here. */ stack<int>s; stack<int>mins; //辅助栈,每次存进去当前栈内所有元素的最小值 MinStack() { }原创 2020-05-12 22:31:24 · 84 阅读 · 0 评论 -
leetcode-Pow(x,n)
题目https://leetcode-cn.com/problems/powx-n/思路快速幂,注意指数n的最小值INT_MIN变成正的,int 存不下AC代码class Solution {public: double myPow(double x, int n) { double res = 1.00000; if(n == 0) return 1.00000; long long temp = abs(n); //最小的负数变成正的i原创 2020-05-11 22:28:46 · 112 阅读 · 0 评论 -
leetcode-x的平方根
题目https://leetcode-cn.com/problems/sqrtx/思路使i从1开始查找,判断i*i > x时,循环结束,当i*i<=x,记录res的值,这整个过程,可以用二分查找的思想我直接暴力????????,思维还不够敏捷。AC代码class Solution {public: int mySqrt(int x) { /* long long res; if (x == 0) return 0;原创 2020-05-09 22:08:15 · 100 阅读 · 0 评论 -
leetcode-验证搜索二叉树
题目https://leetcode-cn.com/problems/validate-binary-search-tree/思路中序遍历,结果是顺序的,用一个pre记录前面节点的值,因此当遍历的节点的值小于pre,就是二叉搜索树了。递归,栈+迭代实现中序遍历不要在leetcode使用全局变量!不要在leetcode使用全局变量!不要在leetcode使用全局变量!????AC代码//...原创 2020-05-06 10:09:07 · 107 阅读 · 0 评论 -
leetcode-跳跃游戏II
题目https://leetcode-cn.com/problems/jump-game-ii/思路贪心,局部最优解推出全局最优解,每次让当前的点跳到下一个点的跳跃长度最大的点,因此选择在当前点的跳跃范围内的跳跃范围最大的点。当点跳到点的跳跃范围的边界时,重新更新下一次的边界。在点跳到点跳跃范围的边界的整个过程,挑选下一个要跳的点,也就是挑选跳跃距离最大的点。AC代码class Solu...原创 2020-05-04 21:58:13 · 132 阅读 · 0 评论 -
leetcode-最大子序和
题目https://leetcode-cn.com/problems/maximum-subarray/AC代码class Solution {public: int maxSubArray(vector<int>& nums) { /* int sum = 0; 贪心 int max = 0x80000000; //Int最小值...原创 2020-05-03 22:18:37 · 83 阅读 · 0 评论 -
leetcode-无重复字符的最长子串
题目https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/思路用string temp保存遍历过程中逐渐累加的不重复子串,遍历原字符串,判断当前字符是否在temp中,没有就加,有的话就找到这个字符在temp中index,那么从index+1开始,temp中后面的字符肯定与当前遍历的字符不...原创 2020-05-02 22:54:59 · 84 阅读 · 0 评论 -
leetcode-快乐数
题目编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例:输入:19输出:true解释:12 + 92 = 8282 + ...原创 2020-04-30 22:55:34 · 162 阅读 · 0 评论 -
leetcode-旋转数组
题目https://leetcode-cn.com/problems/rotate-matrix-lcci/思路找规律,将二维数组的每个下标都列出出来,然后可以发现新数组的下标是旧数组的(x,y)==》(n-y-1,x);需要注意的是,我们遍历时是从0开始,所以才减去1,如果从1开始,那么要+1.找规律即可。另一难点,原地旋转,不借助辅助空间,还是找规律的…(找了一个小时)(3...原创 2020-04-07 17:31:12 · 60 阅读 · 0 评论 -
leetcode-删除最外层的括号
题目https://leetcode-cn.com/problems/remove-outermost-parentheses/思路使用栈,遍历字符串,遇到左括号就压入,遇到右括号就弹出,当栈为空时,说明当前index是外层要舍去的括号,根据下标之间的关系即可找到“原语”另外一种思路:使用两个变量left和right,初始化left = 1,right = 0;这样可以忽略外层的左括号,...原创 2020-04-04 11:53:29 · 76 阅读 · 0 评论 -
leetcode-字符串转换为整数(atoi)
题目https://leetcode-cn.com/problems/string-to-integer-atoi/思路首先去掉前置多余空格判断正负情况,需要注意出现两个正负号的字符都return 0,例如“±2”;接下来在剩余的字符串中提取出数字即可,我们只需要判断这个字符是不是0~9,用isdigit()函数判断即可提取数字需要判断溢出情况,不定义res为long,而是通过判断当...原创 2020-04-03 20:51:50 · 151 阅读 · 0 评论 -
leetcode-接雨水
题目https://leetcode-cn.com/problems/trapping-rain-water/思路栈的做法:维护一个栈,这个栈其实就是一个递减的水柱下标的集合,但遇到一个新的水柱比当前栈顶水柱高,那么就有积水了,难点是要理解如何求出这些积水(长乘宽)。AC代码#include <iostream>#include <vector>#includ...原创 2020-04-02 22:40:39 · 103 阅读 · 0 评论 -
leetcode-有效的括号
题目描述https://leetcode-cn.com/problems/valid-parentheses/思路栈解法,遇到左括号压入栈中,遇到右括号与栈顶元素进行配对,配对成功弹出栈顶元素,配对失败返回false需要注意只有右括号的情况AC代码#include <iostream>#include <string>#include <stack...原创 2020-03-26 22:03:00 · 83 阅读 · 0 评论