
算法学习
算法
XYX的Blog
太原理工大学
展开
-
欧拉函数-求解互质数(Java)
【代码】欧拉函数-求解互质数(Java)原创 2024-04-09 12:37:11 · 370 阅读 · 0 评论 -
快速幂算法(Java)
快速幂算法(Fast Exponentiation Algorithm)是一种用于快速计算大数的指数幂的算法。在计算机科学和数学中,它是一种高效的方法,用于计算形如 x^n 的表达式,其中 x 是任意实数,n 是一个非负整数。传统的指数运算方法的时间复杂度为 O(n),而快速幂算法的时间复杂度为 O(log n),因此在处理大数时非常高效。3),其中指数的二进制表示中,为 1 的位置对应着 x^n 中需要相乘的部分。例如,若指数 n 的二进制表示为 1101,那么 x^n 就可以分解为 x。原创 2024-04-09 12:36:12 · 385 阅读 · 0 评论 -
图论07-被包围的区域(Java)
围绕的区域,并将这些区域里所有的。原创 2024-03-22 21:27:09 · 427 阅读 · 0 评论 -
图论06-飞地的数量(Java)
在任意次数的移动中离开网格边界的陆地单元格的数量。是指从一个陆地单元格走到另一个相邻(表示一个海洋单元格、表示一个陆地单元格。)的陆地单元格或跨过。原创 2024-03-21 09:49:44 · 1378 阅读 · 0 评论 -
图论05-岛屿的最大面积(Java)
(代表土地) 构成的组合,这里的「相邻」要求两个。如果没有岛屿,则返回面积为。岛屿的面积是岛上值为。原创 2024-03-21 09:44:46 · 758 阅读 · 0 评论 -
图论04-岛屿数目(Java)
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。(水)组成的的二维网格,请你计算网格中岛屿的数量。此外,你可以假设该网格的四条边均被水包围。原创 2024-03-21 09:40:51 · 518 阅读 · 0 评论 -
图论03-所有可能路径(Java)
可以访问的所有节点的列表(即从节点。,请你找出所有从节点。原创 2024-03-19 16:30:42 · 619 阅读 · 0 评论 -
图论02-并查集的实现(Java)
【代码】图论02-并查集的实现(Java)原创 2024-03-19 11:11:11 · 577 阅读 · 0 评论 -
图论01-DFS和BFS(深搜和广搜邻接矩阵和邻接表/Java)
【代码】图论01-DFS和BFS(深搜和广搜邻接矩阵和邻接表)原创 2024-03-19 11:09:54 · 537 阅读 · 0 评论 -
回溯算法12-全排列II(Java/排列数去重操作)
给定一个可包含重复数字的序列。返回所有不重复的全排列。原创 2024-03-10 11:46:47 · 383 阅读 · 0 评论 -
回溯算法11-全排列(Java)
给定一个不含重复数字的数组。原创 2024-03-10 11:31:04 · 509 阅读 · 0 评论 -
回溯算法10-非递减子序列(Java/set去重操作)
数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。,找出并返回所有该数组中不同的递增子序列,递增子序列中。原创 2024-03-10 10:22:35 · 264 阅读 · 0 评论 -
回溯算法09-子集II(Java/子集问题的去重方法)
其中可能包含重复元素,请你返回该数组所有可能的。返回的解集中,子集可以按。原创 2024-03-09 21:42:44 · 417 阅读 · 0 评论 -
回溯算法08-组合总数II(Java/组合去重的两种方法)
*注意:**解集不能包含重复的组合。中的每个数字在每个组合中只能使用。给定一个候选人编号的集合。中所有可以使数字和为。原创 2024-03-09 21:09:51 · 544 阅读 · 0 评论 -
回溯算法07-子集(Java/子集问题)
返回该数组所有可能的子集(幂集)。原创 2024-03-07 16:46:44 · 263 阅读 · 0 评论 -
回溯算法06-复原IP地址(Java/分割字符串)
用以表示一个 IP 地址,返回所有可能的。正好由四个整数(每个整数位于。之间组成,且不能含有前导。给定一个只包含数字的字符串。,这些地址可以通过在。原创 2024-03-07 12:21:29 · 994 阅读 · 0 评论 -
回溯算法05-分割回文子串(Java)
分割成一些子串,使每个子串都是。是正着读和反着读都一样的字符串。所有可能的分割方案。原创 2024-03-07 10:16:33 · 334 阅读 · 0 评论 -
回溯算法04-组合总数(Java)
如果至少一个数字的被选数量不同,则两种组合是不同的。,并以列表形式返回。中可以使数字和为目标数。对于给定的输入,保证和为。原创 2024-03-06 18:14:42 · 344 阅读 · 0 评论 -
回溯算法03-电话号码的字母组合(Java)
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。的字符串,返回所有它能表示的字母组合。原创 2024-03-06 17:39:01 · 466 阅读 · 0 评论 -
回溯算法02-组合总合III(Java)
为什么在result.add(new ArrayList<>(path));该列表不能包含相同的组合两次,组合可以以任何顺序返回。所有可能的有效组合的列表。原创 2024-03-06 16:29:16 · 592 阅读 · 0 评论 -
回溯算法01-组合(Java)
1.确立递归函数及返回值。2.确立回溯的终止条件。原创 2024-03-05 20:33:19 · 429 阅读 · 0 评论 -
动态规划18-组合总数IV(二维数组/Java)
题目数据保证答案符合 32 位整数范围。原创 2024-03-01 15:41:22 · 478 阅读 · 0 评论 -
动态规划17-打家劫舍(Java)
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,给定一个代表每个房屋存放金额的非负整数数组,计算你。,一夜之内能够偷窃到的最高金额。原创 2024-03-01 15:40:16 · 299 阅读 · 0 评论 -
动态规划16-有效括号(卡特兰数/Java)
代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且。原创 2024-03-01 15:39:15 · 297 阅读 · 0 评论 -
动态规划15-不同的二叉搜索树(卡特兰数/Java)
返回满足题意的二叉搜索树的种数。个节点组成且节点值从。原创 2024-02-28 21:27:33 · 321 阅读 · 0 评论 -
动态规划14-最长递增子序列(Java)
是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。,找到其中最长严格递增子序列的长度。原创 2024-02-27 18:15:34 · 310 阅读 · 0 评论 -
动态规划13-两个字符串的删除操作(最长子字符串/Java)
可以删除任意一个字符串中的一个字符。原创 2024-02-27 18:02:52 · 308 阅读 · 0 评论 -
动态规划12-零钱兑换(Java)
因为每个背包可以放同一种物品多次,所以这是一道完全背包问题。计算并返回可以凑成总金额所需的。如果没有任何一种硬币组合能组成总金额,返回。,表示不同面额的硬币;你可以认为每种硬币的数量是无限的。原创 2024-02-16 22:51:42 · 515 阅读 · 0 评论 -
动态规划11-零钱兑换II(Java)
根据题目提示本题是一个完全背包问题,只是dp表示的含义不是最大价值而是最大方式数,此时需要修改一下完全背包的递推公式。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回。表示不同面额的硬币,另给一个整数。假设每一种面额的硬币有无限个。原创 2024-02-16 17:22:09 · 280 阅读 · 0 评论 -
动态规划10-完全背包理论(一维数组/二维数组/Java)
具体来说,给定一组物品,每个物品有一个重量和一个价值,以及一个容量为C的背包,问题是如何选择物品放入背包,使得放入背包的物品的总重量不超过背包的容量,并且总价值最大。有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。与 0/1 背包问题不同的是,完全背包问题中每个物品可以选取多次,即每个物品的。,求解将哪些物品装入背包里物品价值总和最大。原创 2024-02-15 12:11:29 · 262 阅读 · 0 评论 -
动态规划09-一和零(三维背包问题/Java)
的最大子集的长度,该子集中。给你一个二进制字符串数组。原创 2024-02-12 12:48:55 · 631 阅读 · 1 评论 -
动态规划08-目标和(背包问题/Java)
返回可以通过上述方法构造的、运算结果等于。,然后串联起所有整数,可以构造一个。向数组中的每个整数前添加。,然后串联起来得到表达式。给你一个非负整数数组。原创 2024-02-05 16:43:38 · 174 阅读 · 0 评论 -
动态规划07-分割等和子集(背包问题/Java)
请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。原创 2024-02-01 16:54:40 · 294 阅读 · 0 评论 -
动态规划06-01背包问题理论(Java)
有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i]。,求解将哪些物品装入背包里物品价值总和最大。原创 2024-01-30 17:55:33 · 216 阅读 · 0 评论 -
动态规划05-整数拆分(Java)
同时此题也可以用动态规划去做,大家可以参考代码随想录的解法。),并使这些整数的乘积最大化。可以根据上述分析直接写出代码。原创 2024-01-29 16:42:12 · 357 阅读 · 0 评论 -
动态规划04-不同路径II(存在障碍物/Java)
网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。**那么从左上角到右下角将会有多少条不同的路径?**网格中的障碍物和空位置分别用。原创 2024-01-27 11:54:02 · 907 阅读 · 0 评论 -
动态规划03-不同路径(Java)
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。网格的左上角,起始点在下图中标记为 “Start”原创 2024-01-26 17:40:45 · 203 阅读 · 0 评论 -
动态规划02-使用最小花费爬楼梯(Java)
个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。原创 2024-01-26 16:33:32 · 119 阅读 · 0 评论 -
动态规划01-斐波那契/爬楼梯(Java)
一个问题有多个重叠的子问题,动态规划中每一个问题由上一个问题推导出来。原创 2024-01-24 22:54:03 · 386 阅读 · 0 评论