算法
以leetcode刷题,见到的算法为主
codeDog_SH
一起交流,发现真理
展开
-
2021-05-18
题目描述 无重复字符的最长子串示例1输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例3输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。双指针法原创 2021-05-18 11:22:10 · 88 阅读 · 0 评论 -
平衡二叉树
110. 平衡二叉树题目描述: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 。 解法一:从底至顶(提前阻断)思路是对二叉树做先序遍历,从底至顶返回子树最大高度,若判定某子树不是平衡树则 “剪枝” ,直接向上返回...原创 2020-12-02 09:50:44 · 222 阅读 · 0 评论 -
二叉树的层次遍历BFS
102. 二叉树的层序遍历题目描述:给你一个二叉树,请你返回其按层序遍历得到的节点值。 (即逐层地,从左到右访问所有节点。示例二叉树:[3,9,20,null,null,15,7] 返回其层次遍历结果: 代码为:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * T...原创 2020-11-28 10:19:56 · 148 阅读 · 0 评论 -
leetcode之删除排序数组中的重复项
问题描述:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例1: 输入: nums = [1,1,2] 输出: 数应该返回新的长度2,并且原数组nums的前两个元素被修改为1,2. 说明:你不需要考虑数组中超出新长度后面的元素。示例2: 输入: ...原创 2020-07-07 18:25:06 · 111 阅读 · 0 评论 -
leetcode之存最多水的容器
问题描述:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。示例: 输入:[1,8,6,2,5,4,8,3,7] 输出:49解法一: 简单粗暴,使用双重循环class Solut...原创 2020-07-06 16:30:24 · 277 阅读 · 0 评论 -
leetcode之寻找两个正序数组的中位数
问题描述:给定两个大小为m和n的正序(从小到大)数组nums1和nums2。请你找出这两个正序数组的中位数,并且要求算法的时间度复杂度为O(log(m+n))你可以假设nums1和nums2不会同时为空。示例1:nums1 = [1,3]nums2 = [2]则中位数为2.0示例2:nums1 = [1,2]nums2 = [3,4]则中位数为(2+3)/2 = 2.5解法一:简单粗暴,将两个数组合并,两个有序数组的合并也是归并排序的一部分,然后根据奇数还是偶原创 2020-07-06 00:04:11 · 817 阅读 · 0 评论 -
leetcode之求解最大子串问题(滑动窗口)
leetcode之求解最大子串问题问题描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度示例 1:示例2:示例3:解题思路及其代码实现最经典解法之滑动窗口原创 2020-07-04 14:30:46 · 256 阅读 · 0 评论