算法刷题
文章平均质量分 64
幸运的小新粉
将相本无种,男儿当自强!
展开
-
【知识迁移】力扣刷题- 完全平方数(Go 实现)
快速通道279. 完全平方数279. 完全平方数给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和11 不是。来源:力扣(LeetCode)解题这一题其实还是一个背包题,计算的组合数的最小个数,同样是总数原创 2021-06-11 14:12:13 · 174 阅读 · 1 评论 -
【举一反三】力扣刷题-零钱兑换(Go 实现)
快速通道322. 零钱兑换518. 零钱兑换 II前言这个月是动态规划月呀,动态规划的题目核心就是找到状态转移方程。零钱兑换这个系列是很经典的背包题,就是总容量,然后往里边放固定大小的物品,有的是返回方案数,有的是返回最少物品的个数。一定要看一篇文章吃透背包问题!(细致引入+解题模板+例题分析+代码呈现)322. 零钱兑换给定不同面额的硬币 coins 和一个总金额amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以原创 2021-06-11 13:46:13 · 725 阅读 · 2 评论 -
【知识迁移】力扣刷题- 删除并获得点数(Python 实现)
快速通道740. 删除并获得点数前言有些题目比较隐晦,拿到题目毫无头绪,又不像刷举一反三系列一样,由易到难,本文主要记录解题的思路。740. 删除并获得点数给你一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。来源:力扣(LeetCode)解题拿到该题,再原创 2021-05-05 10:18:22 · 254 阅读 · 0 评论 -
【举一反三】力扣刷题-组合总和(Python 实现)
快速通道39. 组合总和40. 组合总和 II216. 组合总和 III377. 组合总和 Ⅳ前言最近喜欢写举一反三系列,看这个也算个系列就写了。这个系列主要是回溯、枚举还有剪枝,也是非常常用的方法。39. 组合总和给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合原创 2021-04-28 15:22:29 · 598 阅读 · 2 评论 -
【举一反三】力扣刷题-买卖股票的最佳时机(Python 实现)
快速通道121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II123. 买卖股票的最佳时机 III188. 买卖股票的最佳时机 IV309. 最佳买卖股票时机含冷冻期714. 买卖股票的最佳时机含手续费前言该系列是非常经典的动态规划的题目,动态规划的核心是记录状态的改变。121. 买卖股票的最佳时机题目的大体意思就是一次的买卖机会,怎么操作才能赚到最多的钱解题这条题目一次买卖还是比较简单的,很容易想到贪心算法,维护股票最低价和卖出最高价即可class Solution:原创 2021-04-22 15:08:48 · 591 阅读 · 1 评论 -
【举一反三】力扣刷题-删除有序数组中的重复项(Python 实现)
题目快速通道删除有序数组中的重复项删除有序数组中的重复项II1、删除有序数组中的重复项题目的大体意思就是对有序数组去重,并且需要原地处理,就是返回原数组,指定结束节点即可。理解 + 解题这条题目首先给出有序数组,如果不是有序数组的话,去重则需要排序或者哈希,既然原地,基本方法就是双指针,把唯一的元素逐个往前挪即可。可以先设置两个指针 left 和 right,left维护唯一的有序数组,right作为遍历的指针。由于是去重且保留一个,那么有两种方法,一种是用right 和 left 比较,如原创 2021-04-18 10:26:47 · 473 阅读 · 1 评论 -
【举一反三】力扣刷题-打家劫舍(Python 实现)
题目快速通道打家劫舍打家劫舍II打家劫舍III1、打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/house-robber著作权归领扣网络所原创 2021-04-15 16:25:17 · 563 阅读 · 0 评论 -
二分查找 插入和查找的区别
二分查找存在两个场景,第一种就是在排好序的列表中进行查询,是否存在目标数 target,返回布尔类型,第二种是插入的情况,我需要把数插入到列表中,返回idx。查询 def find(sortlist, lenn, target): left, right = 0, lenn - 1 while left <= right: mid = (right + left) // 2 midnum = so原创 2021-03-30 14:31:21 · 192 阅读 · 0 评论 -
通配符编辑器(Python)
class Solution: """ @param s: A string @param p: A string includes "?" and "*" @return: is Match? """ def isMatch(self, s, p): # write your code here # 这个跟之前那...原创 2020-04-23 15:21:10 · 192 阅读 · 0 评论 -
不同的路径(Python)
class Solution: """ @param m: positive integer (1 <= m <= 100) @param n: positive integer (1 <= n <= 100) @return: An integer """ def uniquePaths(self, m, n): ...原创 2020-04-23 14:53:54 · 218 阅读 · 0 评论 -
乘积最大子序列(Python)
class Solution: """ @param nums: An array of integers @return: An integer """ def maxProduct(self, nums): # write your code here # maxc = nums[0] ...原创 2020-04-23 11:29:34 · 427 阅读 · 2 评论 -
交叉字符串(Python)
class Solution: """ @param s1: A string @param s2: A string @param s3: A string @return: Determine whether s3 is formed by interleaving of s1 and s2 """ def isInterleave(s...原创 2020-04-22 14:13:37 · 470 阅读 · 0 评论 -
正则表达式匹配(Python) 还没有实现
class Solution: """ @param s: A string @param p: A string includes "." and "*" @return: A boolean """ def isMatch(self, s, p): # write your code here # 使用递归,每...原创 2020-04-21 16:57:41 · 184 阅读 · 1 评论 -
将整数A转换为B更新二进制位(Python)
class Solution: """ @param a: An integer @param b: An integer @return: An integer """ def bitSwapRequired(self, a, b): # write your code here # 将数转化为二进制数组 ...原创 2020-04-16 18:35:15 · 480 阅读 · 0 评论 -
最多有多少个点在一条直线上(python)
"""Definition for a point.class Point: def __init__(self, a=0, b=0): self.x = a self.y = b"""class Solution: """ @param points: an array of point @return: An inte...原创 2020-04-15 17:01:02 · 1165 阅读 · 0 评论