算法
算法
qq_41443802
这个作者很懒,什么都没留下…
展开
-
Java 实现笛卡尔积计算
代码 // 实现思路计算当前第N个List和前面N-1个List的笛卡尔积集合的笛卡尔积集合 public static<T> List<List<T>> cartesianProduct(List<List<T>> data){ List<List<T>> res = null; // 结果集(当前为第N个List,则该处存放的就为前N-1个List的笛卡尔积集合) for原创 2021-10-26 09:23:29 · 997 阅读 · 0 评论 -
Java 动态规划实现买卖股票的最佳时机计算
题:买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 =原创 2021-05-18 17:28:32 · 379 阅读 · 0 评论 -
Java 动态规划实现打家劫舍最大收益的计算
题:打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。示例 2:原创 2021-05-18 14:59:38 · 322 阅读 · 0 评论 -
Java 动态规划实现最小路径和计算
题:最小路径和给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。实现: // 最小路径和 public static int minPathSum(int[][] arr){ if (arr.length == 0){ //.原创 2021-05-18 09:26:34 · 494 阅读 · 0 评论 -
Java 动态规划实现三角形最小路径和计算
题:三角形最小路径和给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。[ [2], [3,4], [6,5,7], [4,1,8,3]]则自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。 // 三角形最小路径和 public static int minPath(int[][] arr){ if (arr.length == 0){ // 为0 最小路径为0 .原创 2021-05-17 17:41:08 · 189 阅读 · 0 评论 -
Java 动态规划实现最长上升子序列计算
题:最长上升子序列给定一个无序的整数数组,找到其中最长上升子序列的长度。输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。// 动态规划实现public static void maxSize(int[] arr){ int[] dp = new int[arr.length]; // 存放数组中对应下标元素的最长上升子序 // arr = [10,9, 2, 5, 3, 7,.原创 2021-05-17 16:27:19 · 661 阅读 · 0 评论