![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
星域_03zhan
一起努力学习呀~
展开
-
最小的k个数
最小的K个数原创 2022-06-13 13:59:17 · 116 阅读 · 0 评论 -
树的前序,中序,后序遍历
树的遍历原创 2022-06-11 10:50:02 · 63 阅读 · 0 评论 -
最长公共子序列和最长公共子串
文章目录最长公共子序列最长公共子串区别:最长公共子序列是可以不连续的,但是序列的顺序不能改变。最长公共子串的要求更高,必须是连续的,顺序不变的。比如:we1249hpaek9h124aw它们的最长公共子序列是 e 9 h a它们的最长公共子串是 1 2 4最长公共子序列给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除原创 2022-05-29 18:30:30 · 239 阅读 · 0 评论 -
最小路径和
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步动态规划:public int minPathSum(int[][] grid){ if(grid ==null || grid.length ==0 || grid[0].length ==0 ){ return 0; } int size1=grid.length; int size2=grid[0].length; int[][]原创 2022-05-29 16:38:38 · 56 阅读 · 0 评论 -
剑指offer09--用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )分析:这里需要两个栈来实现队列的功能。栈遵循先进后出的原则,队列遵循先进先出的原则。用第一个栈来存入元素,这时最先进入的元素在栈底,然后将第一个栈中的元素移动到新栈中,这时最先进入的元素就在栈顶了,然后用第二个栈出栈时,整个执行的顺序就变成了先进先出。class CQueue{原创 2022-05-28 16:50:50 · 52 阅读 · 0 评论 -
背包理论---一和零 & 最后一块石头的重量II
leetcode动态规划一和零给你一个二进制字符串数组 strs 和两个整数 m 和 n 。请你找出并返回 strs 的最大子集的大小,该子集中 最多 有 m 个 0 和 n 个 1 。如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。示例 1:输入:strs = [“10”, “0001”, “111001”, “1”, “0”], m = 5, n = 3 输出:4解释:最多有 5 个 0 和 3 个 1 的最大子集是 {“10”,“0001”,“1”,“0”} ,原创 2022-05-14 14:51:22 · 78 阅读 · 0 评论 -
746-使用最小花费爬楼梯
力扣:746使用最小花费爬楼梯动态规划给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。实例 1:输入:cost = [10, 15, 20] 输出:15 解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15 。示例 2:输入:cost = [1, 100, 1, 1, 1,原创 2022-05-11 14:05:26 · 63 阅读 · 0 评论