找到约 1795 条结果
  • 剑指offer 14——剪绳子
    给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m] 。请问 k[0]*k[1]*...*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。
    2020-05-10
  • 力扣213——打家劫舍 II
    你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
    2020-01-24
  • 庖丁解牛斐波拉契数列和背包问题——详细解析两个问题优化过程,带你从最基本核心的问题看懂动态规划!!!
    动态规划作为一种非常经典的一类算法,不仅在解决实际问题当中有很多实际的应用,同时通常也是面试的一个重点。本篇文章一步步剖析动态规划的基本原理,通过斐波拉契数列问题(优化时间复杂度从$O(2^n)$到O(n)再到O(log(n)))和经典的01背包问题一步一步带你从最基本的原理弄懂动态规划。我们首先分析斐波拉契数列问题,...
    2022-07-09
  • Edit Distance@LeetCode
    典型的动态规划题目。维护一个二维数组dis[][],dis[i][j]表示:word1的前i个元素与word2的前j个元素的edit distance值。递推关系为:
    2015-04-12
  • PAT A1007 动态规划
    这道题也是动态规划的几大问题之一,也就是最大连续序列和问题; 对于这个问题,我们需要考虑的首先还是转换方程的问题:我们设置一个dp数组,dp[i]代表的是到当前的最大序列和。 所以有转换方程:dp[i]=max(a[i],dp[i-1]+a[i])所以边界就是dp[0]=a[0],然后从1开始计算; 代码如下: {代码...}
    2019-02-15
  • [Golang]力扣Leetcode - 53.最大子数组和(动态规划)
    题目:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。链接: 力扣Leetcode - 53.最大子数组和.示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输...
    2022-03-30
  • 字节跳动后端面经(18)
    mysql三大范式MySQl主从模式有哪些?读写分离导致不一致的场景?有什么方法可以解决?事务ACID特性,隔离级别,隔离级别对应问题对其描述MySQL的MVCC机制?undo log机制?read view的使用隔离级别?介绍一下binlog?数据结构中栈和队列讲一下动态规划?它可以用在哪里?redis的集群化的构建?操作系统中,进程的每种状态...
    2022-10-27
  • 120. Triangle
    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.
    2019-02-16
  • leetcode-106-根据中序和后序遍历,构造二叉树
    题目分析:根据中序和后序遍历,构造二叉树。 根据动态规划方法,找出循环的共性。构造子二叉树,需要节点,和左右连接,从后序遍历找出根节点,从inorder对目标序列进行切分,如此往复。
    2018-04-09
  • 阿里架构师强烈推荐《数据结构与算法经典问题解析》(PDF文档)
    整理了一份Java数据结构与算法经典问题解析核心知识点。覆盖递归和回溯、链表、栈、队列、树、优先队列和堆、队列、优先队列和堆、并查集ADT、排序、选择算法(中位数)、散列、算法设计技术、分治算法、动态规划算法、杂谈等大量知识点。
    2020-01-08
  • 10-I 裴波那契数列,动态规划
    10-I 裴波那契数列首先,纯递归需要大量重复的递归计算,超时。X思路一:新建一个长度为n的数组,用于在递归时存储arr(0)至arr(n)的数值。摘自不死神兔_黑马程序员注意:新建的数组为n,则最后返回的值是arr[n-1]新建的数组为n+1,则最后返回的值是arr[n]操作:思路二:动态规划一直变动的就是3个数,两个和数,一个为前...
    2021-05-18
  • 动态规划先导
    动态规划问题的一般形式就是求最值。动态规划其实是运筹学的一种最优化方法,只不过在计算机问题上应用比较多。求解动态规划的核心问题是穷举。因为要求最值,需要将所有可行的答案穷举出来,然后在其中找最值。动态规划的穷举点有点特别,因为这类问题存在[重叠子问题],如果通过暴力穷举的话效率会及其低下,所以需要[...
    2021-05-14
  • 221. 最大正方形
    计算二维矩阵的前缀和的复杂度为o(nm),利用前缀和我们可以在o(1)的时间内找出子矩阵的和。所以先确定矩阵的左上,然后确定其边界,判断所在的子矩阵的和是否等于边长的平方即可。
    2020-05-09
  • LeetCode-120-三角形最小路径和
    题目描述:给定一个三角形 triangle ,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。示例说明请见LeetCode官...
    2021-11-23
  • 39、组合总和 | 算法(leetode,附思维导图 + 全部解法)300题
    零 标题:算法(leetode,附思维导图 + 全部解法)300题之(39)组合总和码农三少 ,一个致力于编写极简、但齐全题解(算法)的博主一 题目描述二 解法总览(思维导图)三 全部解法1 方案11)代码: {代码...} 2 方案21)代码: {代码...} 3 方案31)代码: {代码...}
    2022-01-09
  • 【每日一题】填充书架
    给定一个数组 books ,其中 books[i] = [thicknessi, heighti] 表示第 i 本书的厚度和高度。你也会得到一个整数 shelfWidth 。
    2023-04-23
  • 状态压缩:对动态规划进行降维打击
    我们号之前写过十几篇动态规划文章,可以说动态规划技巧对于算法效率的提升非常可观,一般来说都能把指数级和阶乘级时间复杂度的算法优化成 O(N^2),堪称算法界的二向箔,把各路魑魅魍魉统统打成二次元。
    2020-11-19