
算法题目
XD742971636
https://www.dong-blog.fun/
展开
-
【算法】人工蜂群算法,解决柔性车间调度问题
也叫多目标车间调度问题。柔性作业车间调度问题(Flexible Job Shop Scheduling Problem,简称FJSP)是传统作业车间调度问题的一种扩展。在传统的作业车间调度问题中,每个工件的每个工序只能在指定的一台机器上加工。而在柔性作业车间调度问题中,突破了这种资源唯一性的限制,允许每个工件的每个工序在多台不同的机器上加工,且这些机器上的加工时间可能不同。原创 2024-04-26 14:45:19 · 1476 阅读 · 0 评论 -
following signatures couldn‘t be verified because the public key is not available: NO_PUBKEY
【代码】following signatures couldn't be verified because the public key is not available: NO_PUBKEY。原创 2023-03-12 00:27:44 · 346 阅读 · 0 评论 -
【算法题目】【Python】一文刷遍贪心算法题目
贪心算法是一种基于贪心思想的算法,它每次选择当前最优的解决方案,从而得到全局最优解。具体来说,贪心算法在每一步都做出局部最优选择,希望通过这种方式最终达到全局最优解。贪心算法通常适用于问题具有最优子结构性质和无后效性的情况。尽管贪心算法并不总是能够得到最优解,但它通常具有高效、简单等优点,并且在许多实际问题中得到了广泛应用。原创 2023-03-10 14:48:21 · 725 阅读 · 0 评论 -
【算法题目】使用Python生成一个数独游戏的棋盘
如果没有,我们随机生成1~9的数字,并检查该数字是否符合数独规则,如果不符合规则,就换一个数字再次尝试,直到找到符合规则的数字。将符合规则的数字填入该单元格,并继续向后搜索,直到搜索完成整个数独游戏。然后尝试删除单元格中的数字,并确保解法唯一,如果解法唯一,继续删除数字,否则回退上一个状态。solve 方法解决数独游戏,将字符串表示为数独板,并返回解决结果的一个布尔值。接着,使用 solveSudoku 方法来解决数独游戏,并将解决后的结果存放在生成的矩阵中。难度可以控制,且解法唯一,时间复杂度看运气。原创 2023-03-09 18:15:08 · 592 阅读 · 0 评论 -
【算法题目】【Python】彻底刷遍DFS与回溯的算法题目
关于树的算法题目很多,比如求树的深度、节点个数、删除节点等题目,都需要耐心刷完,这里主要关注DFS搜索和BFS搜索,依靠多刷一些题,总结出规律。之后,就需要熟悉好树的遍历。原创 2023-03-08 10:25:25 · 825 阅读 · 0 评论 -
【算法题目】一文搞懂二分查找法
二分查找法(Binary Search)是一种在有序数组中查找某一特定元素的搜索算法。其基本思想是,首先将整个有序数列分成前后两部分,判断在哪个部分中可能会找到要查找的数,然后递归地在那个部分中查找。具体来说,首先选择数列的中间元素。如果要查找的数比中间元素小,则在数列的左半部分继续查找;如果要查找的数比中间元素大,则在数列的右半部分继续查找;如果相等,则找到了要查找的数。这样一直递归进行,直到找到要查找的数或者整个数列被查找完。二分查找法的时间复杂度为 O(log n),其中 n 是数列中的元素个数。原创 2023-01-11 14:04:36 · 428 阅读 · 0 评论 -
【算法题目】【DFS】【一点资讯面试题】二叉树删除节点剩余子树数量
普通二叉树,每个节点的数值不相同。写一个函数,输入是树的根节点和要删除的节点的集合,删除某个节点意味着去除掉和这个节点的关联,剩下的都是子树,函数返回剩余子树数量。input:root,{1}output:2input:root,{1,2,5}output:2input:root,{1,2}output:3input:root,{4}output:3input:root,{4,9}output:2程序还有点问题:import copyfrom typing import Set.原创 2022-05-12 10:46:30 · 385 阅读 · 0 评论 -
【算法题目】浮点数的 n次方根 n次方 ,牛顿迭代法
浮点数的 n次方根:class Solution: def sqrt_n(self, y, n) -> int: # f(x)=x**n-y=0 # f`(x)=n*x^(n-1) # x=x-(x**n-y)/(n*2^(n-1)) if n == 0: return 1 # x1 的 n1 次方 def pow1(x1, n1): if n1原创 2022-04-25 10:58:59 · 271 阅读 · 0 评论 -
【算法题目】DFS BFS 动态规划 零钱兑换 Python
322. 零钱兑换给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。 示例 1:输入:coins = [1, 2, 5], amount = 11输出:3 解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-1示例 3:输入:coins =原创 2022-04-24 21:06:40 · 500 阅读 · 0 评论 -
【算法题目】【奇怪的DFS】Python 括号生成
22. 括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]class Solution: def generateParenthesis(self, n: int) -> List[str]: def dfs(sol: str, l原创 2022-04-24 19:25:21 · 603 阅读 · 0 评论 -
【算法题目】【DFS】Python 三数之和 DFS+剪枝 排序 + 双指针
DFS+剪枝:直接超时:class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: def dfs(start, sol: List): # print(sol) if start > n: # 结束条件, return if len(sol) >= 3: .原创 2022-04-24 19:01:33 · 416 阅读 · 0 评论 -
【算法题目】【动态规划】Python 最长回文子串
文章目录题目解答1 动态规划 转为最长子字符串(执行超时 200ms)解答2 中心扩散 (1ms量级)解答3 动态规划 直接题目5. 最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic原创 2022-04-24 16:54:46 · 1301 阅读 · 0 评论 -
【算法题目】【动态规划】字符串 编辑距离
1 题目72. 编辑距离给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符 示例 1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')示例 2:原创 2022-04-25 00:00:00 · 357 阅读 · 0 评论 -
【算法题目】【DFS】考试得分组合
员工参加考试,判断题X10(每个2分),单选题X10(每个4分),多选题X5(每个八分)。只能顺序作答,答对得分,答错不得分。答错三道,中止考试。输入考试结果分数,输出答题可能情况个数。1 需要dfs传递的参数才写成参数,能全局变量就尽量全局。2 这题传了开始位置、错误次数、分数,三者都是停止条件。3 搜索也分回溯或者不回溯。不回溯:python:def cal(score_in): def dfs(start, error, score): if start == n:原创 2022-04-22 20:48:02 · 548 阅读 · 0 评论 -
【算法题目】【动态规划】接雨水
1 巧妙的思路看到了一个巧妙的思路:python3class Solution: def trap(self, height: List[int]) -> int: ans = 0 h1 = 0 h2 = 0 for i in range(len(height)): h1 = max(h1,height[i]) h2 = max(h2,height[-i-1])原创 2022-04-23 00:00:00 · 526 阅读 · 0 评论 -
【算法题目】【DFS】岛屿数量 岛屿中面积最大值
1岛屿数量题目很好理解,dfs来一套即可:(1)二维的,没考虑特殊情况;(2)对每个网格dfs,每次dfs往上下左右搜(3)grid是list,在python里面会是一个全局,第一次搜到记一次搜到了一块岛屿,后面的dfs都是为了扫清上下左右的岛屿;(4)dfs三要素:a 如何结束b 如何递归c 如何剪枝,这里不需要class Solution: def numIslands(self, grid: List[List[str]]) -> int: def d原创 2022-04-21 23:31:13 · 427 阅读 · 0 评论 -
【算法题目】【DFS】组合,组合总和1,2
组合总和https://leetcode-cn.com/problems/combination-sum/comments/class Solution: def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]: ans = [] temp = [] def recursion(idx, res): if id.原创 2022-04-20 14:58:11 · 264 阅读 · 0 评论 -
【BIGO】 算法岗位面试
面试官真是太资深,只有再深入学习才行了:1 决策树、支持向量机、贝叶斯分类器 的数学知识;2 mse损失函数反向传播推导,与权重联系;3 项目事情;4 coding:C++ 内存泄漏解决;5 coding:python 一维maxpooling的时间复杂度优化;...原创 2022-04-16 17:07:30 · 567 阅读 · 0 评论 -
【算法题目】有n个台阶,青蛙一次只能跳1步到k步,请问有多少种跳法?
这里与递推类似,不同的是我们使用一个滚动数组f[i % (k+1)], 来存储到达第i层台阶的跳法数。这里的n表示有n个台阶,k表示青蛙一次可以跳的最多步数。使用两个循环,外层循环是遍历到达第i层台阶的所有跳法,内层循环是遍历所有从第i-1,i-2…设f[i]表示到达第i层台阶的跳法数,那么到达第i层台阶的跳法数可以由从第i-1,i-2…当然,这个递推式需要初始化,当i原创 2022-04-16 15:04:32 · 865 阅读 · 0 评论 -
【算法题目】【动态规划】最长公共子序列 最长重复子数组 最长公共子字符串
最长公共子序列 https://leetcode-cn.com/problems/longest-common-subsequence/class Solution: def longestCommonSubsequence(self, text1: str, text2: str) -> int: m,n=len(text1),len(text2) dp=[[0]*(n+1) for i in range(m+1)] for i in ra原创 2022-04-16 14:14:28 · 314 阅读 · 0 评论 -
【算法题目】行列递增矩阵中查找一个数值 Python
ref:https://blog.csdn.net/u010089444/article/details/70854510所以:class Solution: def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool: def find(x,y): if not (x<len(matrix) and y ): ret原创 2022-04-12 00:56:06 · 1233 阅读 · 0 评论 -
【算法题目】【DFS】岛屿的最大面积
给定一个二维的 0-1 矩阵,其中 0 表示海洋,1 表示陆地。单独的或相邻的陆地可以形成岛屿,每个格子只与其上下左右四个格子相邻。求最大的岛屿面积。Input:[[1,0,1,1,0,1,0,1],[1,0,1,1,0,1,1,1],[0,0,0,0,0,0,0,1]]Output: 6思路:有时我们可能会需要对已经搜索过的节点进行标记,以防止在遍历时重复搜索某个节点,这种做法叫做状态记录或记忆化(memoization)。一般来说,深度优先搜索类型的题可以分为主函数和辅函数,主函数用于遍原创 2022-03-31 00:38:24 · 985 阅读 · 0 评论 -
抛硬币多少次才连续两次正面朝上
https://zhuanlan.zhihu.com/p/68358814原创 2021-06-10 08:49:50 · 1071 阅读 · 0 评论 -
匈牙利算法 二分图匹配 求二分图的最大匹配数和最小点覆盖数
https://zhuanlan.zhihu.com/p/96229700原创 2021-06-01 16:01:12 · 227 阅读 · 0 评论 -
198. 打家劫舍 【动态规划】 好文分享
https://leetcode-cn.com/problems/house-robber/solution/dong-tai-gui-hua-jie-ti-si-bu-zou-xiang-jie-cjavap/作者:nettee链接:https://leetcode-cn.com/problems/house-robber/solution/dong-tai-gui-hua-jie-ti-si-bu-zou-xiang-jie-cjavap/来源:力扣(LeetCode)著作权归作者所有。商业转.原创 2020-11-23 01:30:11 · 146 阅读 · 0 评论 -
python 105. 从前序与中序遍历序列构造二叉树 106. 从中序与后序遍历序列构造二叉树 108. 根据前序和后序遍历构造二叉树
1 从前序与中序遍历序列构造二叉树https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/从来都是用来当填空题的。现在要求写程序。比如: A B CF D E前序遍历序列是: A B F C D E中序遍历序列是: F B A D C E规律:要点:树的前序遍历第一个是根节点,满足...原创 2020-11-22 23:22:37 · 215 阅读 · 0 评论 -
24点游戏的暴力美学
开始自己写了一个全排列,不优雅。python有全排列的系统库:from itertools import permutations题目描述计算24点是一种扑克牌益智游戏,随机抽出4张扑克牌,通过加(+),减(-),乘(*),除(/)四种运算法则计算得到整数24,本问题中,扑克牌通过如下字符或者字符串表示,其中,小写joker表示小王,大写JOKER表示大王: 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER本程序要求实现:输入4张原创 2020-11-21 20:54:50 · 186 阅读 · 0 评论 -
数据结构 栈混洗 个数 Stack Shuffling 卡特兰数
https://blog.csdn.net/darkrabbit/article/details/89409548(1) 出栈序列共有多少种可能?(2) 求出所有出栈(入栈)序列。(3) 给出一个出栈序列,问栈的容量最少需要多少?(4) 给出一个(或多个)出栈序列,问此序列是不是(哪一个序列不是)原序列混洗得到的?python题目描述给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号,火车站只有一个方向进出,同时停靠在火车原创 2020-11-20 00:33:14 · 1005 阅读 · 0 评论 -
【算法题目】最长上升子序列 合唱队形 【动态规划】
介绍:https://www.cnblogs.com/frankchenfu/p/7107019.html应用import bisectdef max_order(lists): list_num = [] list_max = [] for i in lists: # bisect_left把i插入list_num,使得list_num还是升序,返回index。insort才是就地插入 local = bisect.bisect_lef原创 2020-11-18 22:19:27 · 214 阅读 · 0 评论 -
背包问题 python 【动态规划】
推荐阅读:百度百科:https://baike.baidu.com/item/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/2416931?fr=aladdin#reference-[9]-841810-wrapjava实现:https://blog.csdn.net/Cobbyer/article/details/108127742计算机常用算法与程序设计案例教程: https://max.book118.com/html/2019/0122/60530000550020原创 2020-11-18 12:12:05 · 367 阅读 · 0 评论 -
141. 环形链表 142. 环形链表 II 使用快慢指针求解「环形链表」
环形链表 https://leetcode-cn.com/problems/linked-list-cycle/https://www.cxyxiaowu.com/647.html设置两个指针,一个每次走一步的慢指针和一个每次走两步的快指针。如果不含有环,跑得快的那个指针最终会遇到 null,说明链表不含环如果含有环,快指针会超慢指针一圈,和慢指针相遇,说明链表含有环。pythonclass ListNode: def __init__(self, x): sel原创 2020-11-16 12:15:15 · 175 阅读 · 0 评论 -
42. 接雨水 动态编程 双指针
https://leetcode-cn.com/problems/trapping-rain-water/动态编程from typing import Listclass Solution: def trap(self, height: List[int]) -> int: if not height: return 0 ans = 0 size = len(height) left_max =原创 2020-11-10 15:36:19 · 220 阅读 · 0 评论 -
300. 最长上升子序列(动态规划) 354. 俄罗斯套娃信封问题
from typing import Listclass Solution: def lengthOfLIS(self, nums: List[int]) -> int: if not nums: return 0 dp = [] for i in range(len(nums)): dp.append(1) for j in range(i): .原创 2020-11-09 22:40:00 · 157 阅读 · 0 评论 -
93. 复原IP地址 (递归+回溯 )
from typing import Listclass Solution: def restoreIpAddresses(self, s: str) -> List[str]: SEG_COUNT = 4 ans = list() segments = [0] * SEG_COUNT def dfs(segId: int, segStart: int): # 如果找到了 4 段 IP 地址并且..原创 2020-11-09 20:14:43 · 281 阅读 · 0 评论 -
17. 电话号码的字母组合(递归+回溯 )
from typing import Listclass Solution: def letterCombinations(self, digits: str) -> List[str]: if not digits: return list() phoneMap = { "2": "abc", "3": "def", "4": "ghi", ..原创 2020-11-09 18:30:45 · 254 阅读 · 0 评论 -
22. 括号生成(递归+回溯 )
from typing import Listclass Solution: def generateParenthesis(self, n: int) -> List[str]: ans = [] def backtrack(S, left, right): if len(S) == 2 * n: ans.append(''.join(S)) return ..原创 2020-11-09 17:53:59 · 177 阅读 · 0 评论 -
【算法题目】【DFS】全排列1,2
https://leetcode-cn.com/problems/permutations/solution/quan-pai-lie-by-leetcode-solution-2/from typing import Listclass Solution(object): def permute(self, nums: List[int]) -> List[List[int]]: if not nums: return []原创 2020-11-09 16:21:08 · 231 阅读 · 0 评论 -
N皇后(递归+回溯)
https://leetcode-cn.com/problems/n-queens/solution/liang-chong-shi-xian-xiang-xi-tu-jie-51-n-huang-ho/伪代码dfs函数(x) { if x==n { //如果x等于n了,说明每行的皇后都放置完毕 //将棋盘内容的快照保存下来 return } for(y=0;i<n;++y) { if [x,y]这个位置是有效的,即横、竖、原创 2020-11-09 11:38:17 · 283 阅读 · 0 评论 -
36. 有效的数独(遍历一次 9+9+9个字典 哈希) 37. 解数独
36. 有效的数独pythonfrom typing import Listclass Solution: def isValidSudoku(self, board): """ :type board: List[List[str]] :rtype: bool """ # init data rows = [{} for i in range(9)] # 字典 哈希表 列表第一个字典:row原创 2020-11-08 20:01:44 · 313 阅读 · 0 评论 -
1. 两数之和(哈希表) 15. 三数之和(双指针) 18. 四数之和
1 两数之和https://leetcode-cn.com/problems/two-sum/pythonclass Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: hashtable = dict() for i, num in enumerate(nums): if target - num in hashtable:原创 2020-11-08 17:39:49 · 282 阅读 · 0 评论