leetcode
zxhI2020Y
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
面试题30. 包含min函数的栈
面试题30. 包含min函数的栈题目的意思就是说需要实现一个可以返回当前栈中对应的最小值的函数的,实现的思路是使用两个栈,一个是正常的栈,每次正常添加元素,然后每次都将当前栈中最小的元素放在其中,比如刚开始的时候,首先来的元素就是当前的第一个元素,就是当前的最小的,每次来的时候都跟当前最小栈的最顶端的元素进行比较,如果当前的元素小于更小则放入其中的最小栈内,否则继续将原先的栈顶的元素放在里面。实现的语言Javascript,实现的代码如下:/** * initialize your data str原创 2021-03-26 19:28:48 · 122 阅读 · 0 评论 -
746. 使用最小花费爬楼梯
https://leetcode-cn.com/problems/min-cost-climbing-stairs/示例 1:输入:cost = [10, 15, 20]输出:15解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15 。示例 2:输入:cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]输出:6解释:最低花费方式是从 cost[0] 开始,逐个经过那些 1 ,跳过 cost[3] ,一共花费 6 。题意就是当前没原创 2021-03-24 12:57:52 · 161 阅读 · 0 评论 -
剑指 Offer 58 - I. 翻转单词顺序
https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof/示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: “a good example”输出: “example good a”解释:原创 2021-03-23 13:32:44 · 119 阅读 · 0 评论 -
剑指 Offer 29. 顺时针打印矩阵
简单顺时针打印矩阵,巧妙的使用上下左右的来记录即可!https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { vector<int> res; if(matrix.empty(原创 2021-03-23 11:51:57 · 112 阅读 · 0 评论 -
376. 摆动序列
https://leetcode-cn.com/problems/wiggle-subsequence/示例 1:输入: [1,7,4,9,2,5]输出: 6解释: 整个序列均为摆动序列。示例 2:输入: [1,17,5,10,13,15,10,5,16,8]输出: 7解释: 这个序列包含几个长度为 7 摆动序列,其中一个可为[1,17,10,13,10,16,8]。示例 3:输入: [1,2,3,4,5,6,7,8,9]输出: 2题目意思就是必须是交替的出现元素的大小,也就是元素出原创 2021-03-22 22:17:58 · 143 阅读 · 0 评论 -
面试题 16.26. 计算器
leetcode:https://leetcode-cn.com/problems/calculator-lcci/示例 1:输入: "3+2*2"输出: 7示例 2:输入: " 3/2 "输出: 1示例 3:输入: " 3+5 / 2 "输出: 5没什么思路可言,直接上代码!var calculate = function(s) { let prev = 0, num = 0, sum = 0, preOp = '+' s += '&' for(let i=0;原创 2021-03-22 20:13:17 · 189 阅读 · 0 评论 -
剑指 Offer 63. 股票的最大利润
题目意思如下:转载复制来自leetcode,侵删!示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。思路:很简单,遍历数组,使用一个最小值来保存当前已经遍历过的区域的最小值min,然后每次遍历到新的地方的时候都使用当前的值去与之前的最小的值相减,判断差值是否大于全局的res结果值,大于则更新,因为每次如原创 2021-03-21 13:55:21 · 114 阅读 · 0 评论 -
153. 寻找旋转排序数组中的最小值
寻找旋转排序数组中的最小值 https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/ 题目的意思是让我们求解其中的旋转后的数组中的元素的最小值,当然数组也可能是没有旋转,也就是说数组是有序的。其实这个题目暴力解答的话时间复杂度也只有O(n)。首先看下面暴力解答的的代码:也就是直接遍历整个数组去找到其中的最小值class Solution {public: int minArray(vector<i.原创 2021-03-21 13:24:16 · 107 阅读 · 0 评论 -
19. 删除链表的倒数第 N 个结点
题目大意:就是删除其中的倒数第K个节点!思路:自己想的办法是使用快慢指针来解决的,然后使用一个额外的指针来记录当前需要被删除的节点的前一个节点,但是实际上操作难度增加啦!只需要让其中的fast指针少走一步即可!这样的话slow指针当好就是到达了其中的需要被删除的前一个节点。代码如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * Li原创 2021-03-20 15:26:57 · 124 阅读 · 0 评论 -
剑指 Offer 16. 数值的整数次方
https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/题目就是求解a的b次方的结果返回即可!使用整数幂的思想,满足下面的规则的:2 ^ n = 2 ^(n/2) * 2 ^ (n/2); //当n为偶数2 ^ n = 2 ^ (n -1) * 2; //当n为奇数递归实现即可!其中再n为偶数的时候,需要首先将值保留一份,然后进行乘,不可以写两个递归,否则会超时!实现的代码如下:实现的语言为Javascript;/*原创 2021-03-15 19:08:59 · 203 阅读 · 0 评论 -
27. 移除元素
题目:https://leetcode-cn.com/problems/remove-element/解决方法:双指针。使用语言:Javascript代码如下:/** * @param {number[]} nums * @param {number} val * @return {number} */var removeElement = function(nums, val) { let slowIndex = 0; for(let fastIndex = 0; fast原创 2021-03-15 11:25:16 · 103 阅读 · 0 评论 -
单调栈
栈:栈是一种先进后出的结构,是数据结构中比较常见的。单调栈就是维护当前的栈中的内容符合为单调性成立的数据集合,单调递增或者单调递减的布局。单调栈用途不太广泛,只处理一种典型的问题,叫做Next Greater Element单调栈的代码模块如下:vector<int> dailyStack(vector<int> res){ vector<int> ans(res.size()); stack<int> s; for(int i = res.si原创 2021-02-19 14:12:26 · 103 阅读 · 0 评论 -
BST二叉搜索树问题总结
BST:关键是明白其的中序遍历的方式可以得到对应的序列的增序排列,实现的遍历代码如下:vector<int>res;void traverse(TreeNode *root, vector<int>&res){ if(!root) return; traverse(root -> left, res); res.push_back(root -> val); traverse(root -> right, res);} 上面的代码便可以原创 2021-02-18 15:05:38 · 175 阅读 · 0 评论 -
二叉树刷题总结
二叉树的一些题目解法总结!在二叉树的时候最重要的是完成对应的框架的总结,我还是比较蠢,到处结合学习,不断学习还是停留在不入门阶段,想通过这些来大概总结一下,不知道是否可以完成一定的提高!leetcode:226 翻转二叉树class Solution {public: TreeNode* invertTree(TreeNode* root) { if(root == NULL) return NULL; TreeNode *cur = root->lef原创 2021-02-18 14:43:30 · 156 阅读 · 0 评论 -
检查子树//树的子结构//求和路径问题!
三个题目都有着相似的思想!都是需要首先对于当前出发的子节点的结构是否满足对应的性质,然后递归判断当前的树中的剩余的节点是否满足!树的子结构的代码class Solution {public: bool isSubStructure(TreeNode* A, TreeNode* B) { if(!A && !B) return true; if(A == NULL || B == NULL) return false; return原创 2021-02-17 20:33:27 · 157 阅读 · 0 评论 -
递归反转列表问题总结
反转单列表可以使用迭代的方式完成,也可以使用递归的方式实现,前者的实现比较简单,后者的实现有一些难度。同时反转的时候可能只是给出一定区间让你去完成反转。迭代的实现就是找到对应的需要反转的列表的位置然后进行对应的反转,直接使用for循环即可完成操作!将单列表的结构定义为:class ListNode { public: int val; ListNode *next; ListNode(int x) {val = x;} };递归要么是先对于当前的节点功能进行实现,然后依次递归后面的原创 2021-02-16 11:59:33 · 844 阅读 · 0 评论 -
二叉树总结
二叉树的题目解题的时候无非就是明确当前节点是需要完成什么工作,然后实现当前节点的工作后,然后递归调用对应的左右子树去完成相同的工作。写树相关的算法,简单说就是,先搞清楚当前root节点该做什么,然后根据函数定义递归调用子节点,递归调用会让孩子节点做相同的事情。解题的时候无论是直接操作对应的二叉树得到结果还是去构建一棵新的二叉树,都是首先明确当前的root节点是需要做什么工作,然后再次去递归调用完成对应的子树的结果的处理,最终返回对应的结果子树。...原创 2021-02-15 21:03:37 · 111 阅读 · 0 评论 -
最大二叉树
题目大意:总是按照当前数组或者子数组中的元素值的最大值作为根节点,依次创建一颗二叉树。输入:nums = [3,2,1,6,0,5]输出:[6,3,5,null,2,0,null,null,1]解释:递归调用如下所示:- [3,2,1,6,0,5] 中的最大值是 6 ,左边部分是 [3,2,1] ,右边部分是 [0,5] 。 - [3,2,1] 中的最大值是 3 ,左边部分是 [] ,右边部分是 [2,1] 。 - 空数组,无子节点。 - [2,1] 中的最大原创 2021-02-15 20:15:44 · 274 阅读 · 0 评论 -
二叉树展开为链表
题目大意:将对应的二叉树转换为单链表,对应的单链表的顺序是符合前序遍历的方式的,求解的时候也只是需要首先将对应的先求出先序遍历之后,然后依次将左指针转换为NULL,右指针指向下一个节点。实现的代码如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0)原创 2021-02-07 21:57:50 · 152 阅读 · 0 评论 -
二叉树的层次遍历
题目大意:就是将二叉树每一层的节点内容反向输出! 在实现的时候可以直接使用层次遍历的方式即可,然后将层次遍历的结果进行一个逆转。因为在C++语言中的 vector的容器在这方面上使用起来非常方便。 层次遍历的实现是非常简单,首先需要将根节点记录到队列中,然后开始遍历求解,针对于其中当前的列表的长度,每次循环全部的内容,将当前的列表的内容不是空的直接加入即可!/** * Definition for a binary tree node. * struct TreeNode { *原创 2021-02-07 21:40:35 · 236 阅读 · 0 评论 -
二叉树的遍历
二叉树作为数据结构中非常重要的数据结构,对应的几种遍历方法必须认真的弄明白!对于树而言本身就是可以使用递归的方式来进行定义的,即根节点与其相邻的一些节点的递归的值。它包括一个值和一个指向其他节点指针的列表。二叉树的遍历方式有:先序遍历中序遍历后续遍历层次遍历其实前面三种都是DFS的一种,后面的一种是BFS的方式在弄明白的时候必须对应分开学习!一般下二叉树的结构定义为如下:/** * Definition for a binary tree node. * struct TreeNod原创 2021-02-06 09:36:34 · 155 阅读 · 0 评论
分享