题目: 1、给定一数组,求该数组的最大子数组和; 2、给定一矩阵,求该矩阵的最大子矩阵和; 思路: 1、求数组的最大子数组和很简单,可以通过动态规划来实现,假设数组为arr: 假设dp[i]表示从0到i的数组的最大子数组…
标签:动态规划
(算法)跳格子
题目: 有1,2,3,……无穷个格子,你从1号格子出发,每次1/2概率向前跳一格,1/2概率向前跳两格,走到格子编号为4的倍数时结束,结束时期望走的步数为____。 思路: 1、MonteCarl…
(笔试题)路径走法
题目: 在如下8*6的矩阵中,请计算从A移动到B一共有____种走法。要求每次只能向上或向右移动一格,并且不能经过P。 456 492 568 626 680 702 思路: 1、组合数学 在8*6的矩阵,…
(算法)宝石升级问题
题目: 有一块宝石,1级升2级成功率100%,2级升3级成功率80%,3级升4级成功率60%,4级升5级成功率40%,每次升级失败时降回到1级。请问一块1级宝石升到5级平均要多少次? 思路: 问题:求一块1级…
(算法)最长回文子串
题目: 求一个字符串的最长回文子串 思路: 1、暴力枚举 最容易想到的就是暴力破解,列举每一个子串,然后根据回文的定义判断是不是回文,找到最长的那个。 求每一个子串的时间复杂度为O(N^2),判断子串是不是回文的时间复杂…
(算法)最长递增子序列
问题: Given an array of N integer, find the length of the longest increasing subsequence. For example, given [1,…
(剑指Offer)面试题45:圆圈中最后剩下的数字
题目: 0,1,…n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字,求出这个圆圈里剩下的最后一个数字。 思路: 1、环形链表模拟圆圈 创建一个n个节点的环形链表,然后每次在这个链表中删…
(剑指Offer)面试题43:n个骰子的点数
题目: 把n个骰子仍在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 思路: s可能出现的值的范围为:n–6*n 1、全排列 回溯法枚举n个骰子(6面)的全排列,然后计算每一…
(剑指Offer)面试题31:连续子数组的最大和
题目: 输入一个整型数组,数组里有正数也有负数,数组中一个或连续多个整数组成一个子数组,求所有子数组的和的最大值。要求时间复杂度为O(n) 思路: 1、数组累加 从头到尾逐个累加数组中的每个数字,当累加之和小于0时,从下…
(算法)金钗赛诗
题目: 赛诗会后,十二金钗待奔前程。分别宴上,12人各写了一首诗放入包囊。 大家随机取一个,若取到自己的诗,则再取一个,并放回自己的诗,12人都拿到诗算一种分配。 请问:共有多少种不同的分配? 思路: 问题简化:给定n个…
(剑指Offer)面试题9:斐波那契数列
题目: 现在要求输入一个整数n,请你输出斐波那契数列的第n项。 斐波那契数列的定义: f(0)=0;f(1)=1; f(n)=f(n-1)+f(n-2) 思路: 1、递归: 根据递推公式来实现 优点:代码简单,易懂 缺点…
(LeetCode 72)Edit Distance
Given two words word1 and word2, find the minimum number of steps required to convert word…