算法
文章平均质量分 80
老邓CODING
分享经历与学习心得,本科在读
展开
-
课程表,拓扑有向图,广度优先搜索
描述 现在你总共有 n 门课需要选,记为 0 到 n-1。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。 可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。 示例 1: 输入: 2, [[1,0]] 输出: [0,1] 解释: 总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课程顺序为 [0,1原创 2021-05-29 16:43:22 · 341 阅读 · 0 评论 -
打家劫舍(动态规划)求数组所有非相邻数字的最大和
题目讲解 题目源于Leetcode练习 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 1: 输入:[1,2,3,1] 输出:4 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 =原创 2021-04-15 17:31:02 · 182 阅读 · 0 评论 -
大数乘法(利用字符串存放数值)
当存放的数值比long型还大时,考虑溢出,便使用字符串来存储 这里乘法采用的是小学列式乘法思路,时间效率为O(n^2) 需要 明确的是m位数A与n位数B相乘,乘积不会大于(m+n)位数 public class StringMultiply { public static String multiply(String num1, String num2) { if (num...原创 2020-03-26 16:18:58 · 360 阅读 · 0 评论 -
如何给定两个二进制字符串,返回他们的和(用二进制表示)
如何给定两个二进制字符串,返回他们的和(用二进制表示) 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a = “11”, b = “1” 输出: “100” 示例 2: 输入: a = “1010”, b = “1011” 输出: “10101” 下面给出题解 思路是将两个字符串尾对齐,较短的用 000 补齐。 使得两个字符串长度一致,然后从尾端开始一一相加求和进行遍历计算。 注...原创 2020-02-20 17:17:26 · 2478 阅读 · 0 评论