![](https://img-blog.csdnimg.cn/2021052313433453.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 65
算法总结
咕噜咕噜崩
理想还是要有的
展开
-
算法总结Golang版
数组遍历用不到下标就用for(int i:array),别太土啊大哥!数组copy只记这个就行了System.arraycopy(stones,0,stones,0,length);以二维数组第二个元素从大到小排序:Arrays.sort(boxTypes, (x, y) -> (y[1] - x[1]));原创 2022-01-10 17:40:11 · 191 阅读 · 0 评论 -
常见重要算法
重要算法排序package review.sort;import java.util.Arrays;/** * @Author: xiang * @Date: 2021/7/5 14:20 */public class BaseSort { public static void main(String[] args) { int[] array = {4,3,5,8,1,5,6,10,14,3,21,100}; System.out.printl原创 2021-07-06 12:44:54 · 119 阅读 · 0 评论 -
回溯算法(排序剪枝 减少复杂度)
回溯算法实际是一种暴力穷举法穷举过程类似于遍历一颗多叉树适合算法:往往是列出所有可能(而动态规划往往是求最优解)框架(注:切片result虽然在函数间传递 但它底层被共用了 所以要copy )枚举三步走做选择(符合条件则加入最终值)下一层决策树backtrace()删除选择/ 全局变量作为最终结果var res [][]int// 回溯函数(递归函数)func backtrace(nums []int,result []int) { / 判断当前是否符合目标 / 如果符原创 2022-01-23 23:47:38 · 430 阅读 · 0 评论 -
动态规划
Dynamic Programming动态规划一般是求最值、最优问题而让种问题每一步局部最优不一定会让最终结果最优(否则就用贪心算法了)典型动态规划步骤一、列出变量或数组1、如果是一维数组问题 ==> 声明一个变量并初始化:int dp = nums[0];;2、如果是二维数组问题 ==> 声明一个数组并初始化第一个值:int[] pd = new int[n+1];二、写出状态转移方程f[x] = min{f[x-2]+1,f[x-5]+1,f[x-7]+1} (x>原创 2021-05-23 18:25:42 · 148 阅读 · 0 评论 -
贪心算法
Greedy Algorithm标志出现在满足限制值的情况下,期望值最大、至少、最多、最短等关键词每一步的最优选择会让最终值最优(最优:选择对限制值同等贡献量的情况下,对期望值贡献最大的数据)举两个栗子验证,成功则使用贪心算法用法分饼干题目描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们转载 2021-01-29 21:26:19 · 167 阅读 · 0 评论