
leetcode题解
文章平均质量分 90
将leetcode中的题目按照算法思想进行分类,整理成,1、双指针、2、排序、3、贪心算法、4、二分查找、5、分治、6、搜索、7、动态规划、8、数学问题,9、数据结构相关问题一共9个分类进行分类整理。
-出发-
学生一个,正处于学习阶段,希望与大家多多交流
展开
-
Leetcode题解-算法-位运算(Python版)
文章目录1 统计两个数二进制位多少位不同2 数组中唯一一个不重复的数3 寻找数组中缺失的数4 不重复的两个数字5 翻转一个数的比特位1 统计两个数二进制位多少位不同461. 汉明距离(Easy)方法一:移位实现位计数两数异或,不同的位会保留下来class Solution: def hammingDistance(self, x: int, y: int) -> int: x = x^y count = 0 while x > 0原创 2022-04-04 21:57:19 · 897 阅读 · 0 评论 -
Leetcode题解-算法-数组与矩阵(python版)
文章目录1、把数组中的0移动到数组尾部2、改变矩阵分维度3、数组中连续1的最大个数4、有序矩阵中查找目标数5、有序矩阵中第k小的数6、1-n的数中一个数被另一个替换,找重复和丢失的数7、寻找数组中丢失的数8、寻找数组中重复的数9、寻找数组中重复的数(不修改数组)1、把数组中的0移动到数组尾部283. 移动零(Easy)使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。右指针不断向右移动,每次右指针指向非零数,则将左右指针对应的数交换,同时左指针右移。class Solu原创 2022-03-27 08:39:45 · 679 阅读 · 0 评论 -
Leetcode题解-算法-哈希表(python版)
文章目录1、两数之和2、判断数组中是否有重复的数3、最长和谐序列4、最长连续序列5、LRU1、两数之和1. 两数之和(Easy)方法一:暴力搜索class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) for i in range(n): for j in range(i+1, n):原创 2022-03-14 08:09:41 · 956 阅读 · 0 评论 -
Leetcode题解-算法-贪心算法(python版)
文章目录1、数对可以组成的最长链2、分配饼干3、不重叠的区间个数4、最少需要多少飞镖刺破气球5、根据身高序号重排序6、买卖股票最大的收益7、买卖股票最大的收益Ⅱ8、种植花朵9、判断是否是字串10、修改一个数成为非递减数组11、连续子数组的最大和12、分隔字符串使同种字符出现在一起13、最小差值 II14、摆动序列1、数对可以组成的最长链2、分配饼干3、不重叠的区间个数4、最少需要多少飞镖刺破气球5、根据身高序号重排序6、买卖股票最大的收益7、买卖股票最大的收益Ⅱ8、种植花朵9、判断是否是字原创 2022-03-10 07:57:46 · 931 阅读 · 0 评论 -
Leetcode题解-算法-栈和队列(python版)
文章目录1、用栈实现队列2、用队列实现栈1、用栈实现队列232. 用栈实现队列(Easy)class MyQueue(object): def __init__(self): self.stack_1 = [] self.stack_2 = [] def push(self, x): self.stack_1.append(x) def pop(self): if not self.stack_2:原创 2021-05-30 18:21:31 · 504 阅读 · 3 评论 -
Leetcode题解-算法-链表(python版)
文章目录1、找出两个链表的交点2、链表反转3、归并两个有序链表4、从有序链表中删除重复结点5、删除链表中倒数第 n 个结点6、交换链表中相邻的结点7、两链表的和8、回文链表9、分隔链表10、链表元素按奇偶聚集11、分区链表1、找出两个链表的交点2、链表反转3、归并两个有序链表4、从有序链表中删除重复结点5、删除链表中倒数第 n 个结点6、交换链表中相邻的结点24. 两两交换链表中的节点(Medium)方法一:递归如果链表为空或者只有一个节点,直接返回否则递归,递归过程如下:# Def原创 2021-05-27 00:15:48 · 535 阅读 · 0 评论 -
Leetcode题解-算法-二分法(python版)
文章目录1、求开方2、找大于给定字符的最小字符3、排序重复数组中找出现一次的数4、第一个出错的版本5、旋转数组最小值6、目标数在排序数组中出现的首尾位置1、求开方69. x 的平方根(Easy)class Solution(object): def mySqrt(self, x): left, right = 1, x while (left <= right): mid = (left + right) // 2原创 2021-05-23 11:53:22 · 517 阅读 · 0 评论 -
Leetcode题解-数据结构-双指针(python版)
文章目录1、有序数组中找两个数和等于某数2、两数平方和3、翻转字符串中的元音字符1、有序数组中找两个数和等于某数167. 两数之和 II - 输入有序数组(Easy)class Solution(object): def twoSum(self, numbers, target): low, high = 0, len(numbers)-1 while low < high: sum = numbers[low] + numbers原创 2021-05-22 21:54:59 · 513 阅读 · 0 评论 -
Leetcode题解-数据结构-树(BST)(python版)
文章目录1、修剪二叉查找树2、二叉查找树的第 k 个元素3、把二叉查找树每个节点的值都加上比它大的节点的值4、二叉查找树的最近公共祖先5、二叉树的最近公共祖先6、 有序数组构造二叉查找树7、 有序链表构造二叉查找树8、寻找两个点,和为给定值9、二叉搜索树中两节点差的最小值10、寻找二叉查找树中出现次数最多的值1、修剪二叉查找树669. 修剪二叉搜索树(Medium)# Definition for a binary tree node.# class TreeNode:# def __in原创 2021-03-07 22:19:11 · 493 阅读 · 0 评论 -
Leetcode题解-数据结构-树(python版)
文章目录1、递归1.1 树的高度1.2 平衡树1.3 归并两棵树1.4 判断是否存在一条路径和等于一个数1.5 统计路径和等于某个数的路径总数1.6 子树1.7 判断树是否对称1.8 两节点间的最长路径1.9 翻转树1.10 最小路径1.11 统计左叶子结点的和1.12 相同节点的最大路径长度1.13 间隔层序遍历1.14 二叉树中第二小的结点2、层序遍历2.1 二叉树每层节点的平均值2.2 找树左下角的结点2.3 之字形打印二叉树3、前中后序遍历3.1 非递归实现二叉树前序遍历3.2 非递归实现二叉树中序原创 2021-03-02 00:40:05 · 578 阅读 · 0 评论 -
Leetcode题解-数据结构-字符串(python版)
1、两字符的组成字符是否相等242. 有效的字母异位词(Easy)方法一:排序class Solution(object): def isAnagram(self, s, t): return sorted(s) == sorted(t)方法二:哈希表统计 s 和 t 中每一个字符出现的次数class Solution(object): def isAnagram(self, s, t): return collections.Counter(s原创 2020-09-09 00:10:27 · 1284 阅读 · 0 评论 -
Leetcode题解-算法-搜索(python版)
文章目录1、BFS1.1 将一个数分解为整数的平方和1.2 最短单词路径1.3 K 站中转内最便宜的航班2、DFS2.1 查找最大的连通面积2.2 矩阵中的连通分量数目2.3 朋友圈的数量2.4 填充封闭的区域2.5 能到达的太平洋和大西洋的区域1、BFS1.1 将一个数分解为整数的平方和1.2 最短单词路径1.3 K 站中转内最便宜的航班bfs,广度优先搜索,先处理数据,以出发点为 key,到达站和价格为 value 构建字典,对处理好的数据进行 bfs。队列中保存的数据是站的位置,中转次数,从原创 2020-08-18 00:27:29 · 899 阅读 · 0 评论 -
Leetcode题解-算法-数组与矩阵
文章目录1、把数组中的0移动到数组尾部2、改变矩阵分维度3、数组中连续1的最大个数4、有序矩阵中查找目标数1、把数组中的0移动到数组尾部283. Move Zeroes(Easy)Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order...原创 2019-08-11 21:19:39 · 653 阅读 · 1 评论 -
Leetcode题解-数据结构-树(BST)
文章目录1、修剪二叉查找树2、1、修剪二叉查找树669. Trim a Binary Search Tree(Easy)给定一个二叉树,和一个范围 [L, R] (R >= L),只保留结点值在该范围中的结点。Example 1:Input: 1 / \ 0 2 L = 1 R = 2Output: 1 ...原创 2019-08-09 16:30:44 · 381 阅读 · 0 评论 -
Leetcode题解-算法-链表
文章目录1、找出两个链表的交点1、找出两个链表的交点160. Intersection of Two Linked Lists(Easy)给两个链表,找出链表的交点,没有交点输出NULL。设置指针 l1 指向链表 A 头节点,当访问到链表 A 的尾节点时,从链表 B 头部开始访问。设置指针 l2 指向链表 B 头节点,当访问到链表 B 的尾节点时,从链表 A 头部开始访问。设链表 A...原创 2019-08-02 23:29:07 · 587 阅读 · 0 评论 -
Leetcode题解-算法-搜索
文章目录1、BFS1.1 将一个数分解为整数的平方和1、BFS1.1 将一个数分解为整数的平方和279. Perfect Squares(Medium)Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, …) which sum to...原创 2019-08-28 16:02:51 · 424 阅读 · 0 评论 -
Leetcode题解-算法-贪心算法
最长的链646. Maximum Length of Pair Chain(Medium)You are given n pairs of numbers. In every pair, the first number is always smaller than the second number.Now, we define a pair (c, d) can follow anoth...原创 2019-07-27 12:24:00 · 1013 阅读 · 0 评论 -
Leetcode题解-算法-动态规划
文章目录1、斐波那契数列1.1爬楼梯1、斐波那契数列1.1爬楼梯70. Climbing Stairs(Easy)You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways...原创 2019-06-02 20:02:43 · 911 阅读 · 0 评论 -
Leetcode题解-算法-栈和队列
文章目录1、用栈实现队列1、用栈实现队列232. Implement Queue using Stacks(Easy)Implement the following operations of a queue using stacks.push(x) – Push element x to the back of queue.pop() – Removes the element fr...原创 2019-05-23 22:25:03 · 444 阅读 · 0 评论 -
Leetcode题解-算法-数学
文章目录1、最长上升子序列每一个数都可以分解成素数的乘积。令 x = 2m0 * 3m1 * 5m2 * 7m3 * 11m4 * …令 y = 2n0 * 3n1 * 5n2 * 7n3 * 11n4 * …如果 x 整除 y(y mod x == 0),则对于所有 i,mi <= ni。最大公约数最小公倍数x 和 y 的最大公约数为:gcd(x,y) = 2min(m0,n0...原创 2019-12-03 09:27:23 · 1289 阅读 · 2 评论 -
Leetcode题解-算法-二分法
文章目录1、求开方2、找大于给定字符的最小字符1、求开方69. Sqrt(x)(Easy)Implement int sqrt(int x).Compute and return the square root of x, where x is guaranteed to be a non-negative integer.Since the return type is an integ...原创 2019-04-25 20:22:34 · 575 阅读 · 0 评论 -
Leetcode题解-数据结构-字符串
Leetcode :242. Valid Anagram(Easy)问题描述Given two strings s and t , write a function to determine if t is an anagram of s.Example 1:Input: s = “anagram”, t = “nagaram”Output: trueExample 2:Input:...原创 2019-03-31 23:41:33 · 609 阅读 · 0 评论 -
Leetcode题解(更新中……)
算法思想双指针Two Sum II - Input array is sorted排序快速选择堆排序桶排序荷兰国旗问题贪心算法二分查找分治搜索BFSDFSBacktracking动态规划斐波那契数列矩阵路径数组区间分割整数最长递增子序列最长公共子序列0-1 背包数学素数最大公约数进制转换阶乘字符串加法减法相遇问题多数投票问题其它数据结...原创 2019-03-13 21:37:28 · 1546 阅读 · 1 评论 -
Leetcode题解-数据结构-树
104. Maximum Depth of Binary Tree (Easy)题目描述Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf ...原创 2019-03-08 20:19:07 · 752 阅读 · 0 评论 -
Leetcode题解-数据结构-双指针
Leetcode :167. Two Sum II - Input array is sorted (Easy)采用双指针遍历数组,协调两个指针指向不同的位置来完成任务。题目描述Given an array of integers that is already sorted in ascending order, find two numbers such that they add up...原创 2019-03-05 20:41:47 · 510 阅读 · 0 评论 -
Leetcode题解-算法-哈希表
文章目录1、两数之和2、判断数组中是否有重复的数3、最长和谐序列1、两数之和1. Two Sum(Easy)给一个无须数组,找出两个下标,下标对应的数之和等于给定值,两下标不能相同。Example:Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1]....原创 2019-08-28 15:57:49 · 430 阅读 · 0 评论 -
Leetcode题解-算法-位运算
文章目录1 统计两个数二进制位多少位不同2 数组中唯一一个不重复的数3 寻找数组中缺失的数41 统计两个数二进制位多少位不同461. Hamming Distance(Easy)The Hamming distance between two integers is the number of positions at which the corresponding bits are dif...原创 2019-09-16 12:00:49 · 514 阅读 · 0 评论