![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
sisteryaya
机器学习,数据挖掘爱好者
展开
-
【剑指offer】跳台阶
'''跳台阶,一次 1 or 2步变态跳台阶,一次1, 2,n阶'''class Solution: def Fibonacci(self, n): if n <= 2: return n dp =[0]*n dp[1] = 1 dp[2] = 2 for i ...原创 2019-03-27 10:49:33 · 110 阅读 · 0 评论 -
【算法4】排序
1、选择、插入、冒泡import java.util.Arrays;import java.util.Collections;import java.util.Scanner;import java.util.Stack;class Sort{ public static int[] swap(int[]nums,int i, int j){ int tem...原创 2019-03-27 10:49:15 · 166 阅读 · 0 评论 -
【剑指offer】矩阵思路
一、【剑指offer】矩阵思路目录一、【剑指offer】矩阵思路1、顺时针打印矩阵2、矩阵路径-包含某字符串3、矩阵的路径-左上角到右下角的总路径数4、矩阵路径-左上角到右下角的最小路径和5、矩阵覆盖6、机器人的移动范围1、顺时针打印矩阵思路:定义r=0,c=0,rows=len(arr)-1,cols=len(arr)-1,从左到右打印第一行,从上到下最后...原创 2018-09-23 15:03:04 · 253 阅读 · 0 评论 -
【剑指offer】切分数组
1、将数组切分为两个和相等的子数组【题意】:给定一个数组nums(仅包含正整数),将这个数组切分为两个子数组,使得这两个子数组的和相等。若能完成上述切分,返回True,否则返回False;【总思路】:0-1背包,和“将数组切分为两个和相等的子数组”想法一样;先初始化一个数组 dp,数组长度为输入数组的累加和, dp[i] = 0表示不存在几个数相加和为 i,存在则为 1 ;若每个...原创 2018-10-09 22:43:20 · 413 阅读 · 0 评论 -
【剑指offer】背包
1、0-1背包有一个容量为 j 的背包,要用这个背包装下物品的价值最大,这些物品有两个属性:体积 w 和价值 v。一件物品有两种情况:装 or 不装;每个物品只能装一件;对于物品 i,体积为 wi,价值为 vi:(1)i 的体积 > 背包的体积,不装,此时背包的最大价值为不装 i 的价值 : (1)i 的体积 < 背包的体积,可以装 也可以 不装,...原创 2018-10-09 16:29:46 · 456 阅读 · 0 评论 -
【剑指offer】子序列问题(递增、公共、摆动)
目录 1、最长的公共子序列2、最长递增子序列(1)DP思想(时间复杂度n*n)(2):二分法找最长递增子序列,并输出(正确输出长度,但不能正确输出子序列)(3):二分法找最长递增子序列,并输出(正确输出长度,但不能正确输出子序列)【改进】:二分法正确输出子序序列3、最长摆动子序列1、最长的公共子序列对于两个子序列 S1 和 S2,找出它们最长的公共子序列。...原创 2018-10-09 16:28:48 · 532 阅读 · 0 评论 -
后缀表达式转中缀表达式
中缀转后缀:中缀表达式转换为后缀表达式 大概意思就是:遇到数字就输出,遇到符号(包括括号)就压入栈,如果当前符号优先级比栈顶的低,就把栈顶的符号输出,平级的也都输出,到左括号(优先级最高为止),然后当前符号入栈,如果遇到右括号,就将符号栈顶的符号依次输出,遍历完成之后,栈里的符号依次输出即可;括号不用输出;注:这里的后转中,后缀含括号;package OffLineTest;/*...原创 2018-09-01 23:52:43 · 9053 阅读 · 4 评论