首页 > TAG信息列表 > leecode
LeeCode 动态规划(一)
简述 如果某一问题存在很多重叠子问题,使用动态规划是非常有效的。 动态规划与贪心 贪心:每次都选择局部最优解 动态规划:每个状态都是由前一个状态推导得到 动态规划解题步骤 确定 dp数组 及下标的含义 确定递推公式 dp数组 初始化 确定遍历顺序 LeeCode 509:斐波那契数 题目描述Leecode 160.相交链表(Java 哈希表、双指针)
找两个链表第一次指针相同的地方 想法:(本来是没有的,因为没读懂题目描述= =) 1.两个指针,长的先走(长减短相差的长度)这么多的步数,然后就可以开始比较指针,直到指向为空,期间如果指针相同,返回该节点,如果链表未相交,则返回的是null 可是这是链表啊!没法知道长度!!!Leecode 3.无重复字符的最大字串长度(Java 暴力拆解)
想法: 1.暴力解法,遇到重复字符就重新开辟空间,最后比较字串长度。 2.指针,但思路不太清晰 ----查看答案和思路,重新整理 滑动窗口: 1.设left,right用于下标值,length,maxLength长度值,一个set,还有初始给的string s 2.将s转成字符类型的数组,得到数组长度 3. 当s中riLeecode 206.反转链表(Java)
想法: 1.设链表长度为n,如5,头节点head,则最后一个元素位置为head-1。 错误,发现行不通,此为链表非数组,存储位置不连续 2.设两个指针p,q,让p,q指向head,再让p指向head的下一个,若不为空,则交换pq(45321),接着q指向p,p指向p的下一个,若不为空则交换(43521),继续,直至p指向空,此2022年7月21日 leecode 刷题日记
21. 合并两个有序链表 难度简单2539收藏分享切换为英文接收动态反馈 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输LeeCode 二叉树问题(二)
二叉树的构建 LeeCode 106: 从中序遍历与后续遍历序列构造二叉树 题目描述 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 建立模型 中序遍历和后续遍历数组可以唯一确定二叉树。 中序LeeCode 二叉树问题(三)
二叉树的应用问题 LeeCode 222: 完全二叉树的节点个数 题目描述 给你一棵 完全二叉树 的根节点 root,求出该树的节点个数。 完全二叉树的定义 除最底层节点可能没填满外,其余每层节点树都达到最大值。 且最底层的节点都集中在该层最左边的若干位置。 满二叉树的定义 每一层的LeeCode 二叉树问题(四)
二叉搜索树的应用问题 二叉搜索树的定义 若左子树不空,则左子树上所有节点的值均小于根节点的值 若右子树不空,则右子树上所有节点的值均大于根节点的值 它的左右子树也均为二叉搜索树 中序遍历结果为一个升序数组 LeeCode 98: 验证二叉搜索树 题目描述 给你一个二叉树的根节点 rLeeCode 栈与队列问题(一)
LeeCode 20: 有效的括号 题目描述 给定一个只包括 '(', ')', '{', '}', '[', ']' 的字符串s,判断字符串是否有效。 有效字符串满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 建立模型 这是一个典型的栈结构的问题 遇到左括号则入栈,遇到右括号则将栈LeeCode哈希问题(二)
LeeCode 454: 四数相加II 题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4,数组长度均为 n ,请你计算有多少个元组 (i, j, k, l) 能满足: \(0 \le i, j, k, l < n\) \(nums[i] + nums[j] + nums[k] + nums[l] == 0\) 标签:数组,哈希 时间复杂度:\(O(N^2)\) 建立模型 使用LeeCode链表问题(一)
本文中所使用的链表定义如下所示: # Definition for singly-linked list. class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next // Definition for singly-linked list. public class ListNode { int val; ListNodeleecode
面试 leecode 面试 刷题 leecode java版数据结构 一、idea leecode插件安装及配置 1. 安装 IDEA插件安装套路 2. 配置 原配置 //code fileName [$!{question.frontendQuestionId}]${question.title} //code template ${question.content} ${question.code} //templacLeeCode数组问题:原地删除
LeeCode 27:移除元素 题目描述: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度length。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面LeeCode 942 增减字符串匹配
LeeCode 942 题目描述: 由范围 [0,n] 内所有整数组成的 n+1 个整数的排列序列可以表示为长度为 n 的字符串 s ,其中: 如果 perm[i] < perm[i + 1] ,那么 s[i] == 'I' 如果 perm[i] > perm[i + 1] ,那么 s[i] == 'D' 给定一个字符串 s ,重构排列 perm 并返回它。如果有多个有LeeCode 1832 找出游戏的获胜者
LeeCode 1832 题目描述: 共有 n 名小伙伴一起做游戏。小伙伴围成一圈,按顺时针顺序从1到n编号。确切地说,从第 i 名小伙伴顺时针移动一位会到达第 (i+1) 名小伙伴的位置,其中 1 <= i < n,从第 n 名小伙伴顺时针移动一位会回到第 1 名小伙伴的位置。 游戏遵顼如下规则: 从第 1 名小伙伴leecode刷题-1
树的前中后序非递归算法 先序遍历-1 class Solution { public: vector<int> preorderTraversal(TreeNode* root) { vector<int> result; stack <TreeNode*> st; TreeNode* node=root; while(!st.empty()||node!=nullptr){leecode算法-11盛最多水的容器
题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/container-with-most-water 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返5. 最长回文子串(Java) Leecode
先复习下简单的回文数。 利用反转数字。 回文数 解题思路: 不同之处在于,对于回文子串,反转的方式会出现错误。 方法:中心扩散法 +双指针 class Solution { public String longestPalindrome(String s) { String res = ""; for(int i = 0; i < s.length();leecode 题目572 另一棵树的子树(python)
给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。 示例 1: 输入:root = [3,403-git 账号管理
一、账号不正确时,会出现以下错误 D:\adam-workplace\leecode>git push remote: [session-7e4629a6] Access denied fatal: unable to access 'https://gitee.com/adam-2021/leecode.git/': The requested URL returned error: 403 二、window的解决方法LeeCode-排序算法专栏
排序算法类别 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也leecode 530. 二叉搜索树的最小绝对差
530. 二叉搜索树的最小绝对差 本题仍然是二叉搜索树,由于中序遍历搜索树是按照由小到大排列,因此只需要将树中序遍历,用一个pre树记录当前节点的前一个节点,然后判断结果大小,最终输出即可。这里pre容易搞错,以上图为例,当前节点为2时,我刚开始还以为pre是3,其实是1。因为563. 二叉树的坡度 (Java) Leecode
对每个节点计算坡度,利用后续遍历,累加求坡度和。 每个节点的坡度,是每个节点的左右子树之和的绝对值。 class Solution{ int count = 0; public int findTilt(TreeNode root) { traverse(root); return count; } int traverse(TreeNode rooleecode 111. 二叉树的最小深度
111. 二叉树的最小深度 递归:注意:和二叉树的最大深度不同,并不是直接将最大值变为最小值,最后的节点左右子节点应都为空才是最小深度,只有一边为空的时候不是最小节点,需要向另一个节点延伸,直到找到左右子节点都为空的时候结束。 /** * Definition for a binary treeleecode 题目977 有序数组的平方(python)
咱就是说很简单的题目还是要写很久呢 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100] 排序后,数组变为 [0,1,9,16,100]