
算法
文章平均质量分 56
Devinroot
About Security...
展开
-
算法设计与分析
穷举法 回溯法BackTracking:粉笔和绳子 DFS DFS深度优先搜索 实现 //伪代码 procedure explore(G,v) //G图,v顶点 visited[v] = true //visited 就是粉笔 for each edge(v,u) in E: if not visited[u]: explore(G,u) //递归 -> 栈FILO(绳索) procedure dfs(G) //初始化 for all v in V: visited[v] = fals原创 2022-04-14 14:17:50 · 356 阅读 · 0 评论 -
12道Leetcode题目让你获得刷题的勇气~(Java语言描述)
Algorithm Tips for beginner: #include<iostream> using namespace std; int main(){ for(int i = 0; i< 10;i++){ cout << i<<endl; //输出10个数,0-9 } cout << endl; for(int i = 0; i <= 10; i++){ cout << i << endl;原创 2022-04-13 20:25:16 · 694 阅读 · 0 评论 -
Leetcode刷题零基础上手指南(Java语言描述)
愿所有解析拓宽你的思路! Array Two pointers同向 -> 用此方法处理过的数组,处理好的数据相对位置会保持一致 Two pointers反向 -> 数组不会保留相对位置 同向Step: 1.Initialize 2.while j < array.length if we need array[j] , by assigning array[i] = array[j] //26 public int removeDuplicates(int[] arr)原创 2022-04-13 20:22:15 · 669 阅读 · 0 评论 -
零基础上手线性规划问题
线性规划 要求: 写出线性规划函数 利用工具求解 本质上是极值问题 三要素: 决策变量 问题的求解就是找出决策变量的最优值 约束条件 范围意义 目标函数 关于决策变量的某个函数 最优解也可能不存在,这对应于两种可能 该线性规划本身不可行(可行区域为空) 约束条件过松,导致可行区域无界 单纯形法求解线性规划 算法从一个顶点开始,不断地重复地寻找目标函数值较高的邻居顶点,并向前移动,一旦再也找不到更高地邻居,结束计算 只适用于简单的线性规划问题,可能有限于局部最优解 线性规划问题的标准原创 2022-04-01 09:30:49 · 245 阅读 · 0 评论 -
前缀和框架
前缀和 class NumArray{ //前缀和数组 private int[] preSum; //构造前缀和 public NumArray(int[] nums) { //preSum[0] = 0,便于计算累加和 preSum = new int[nums.length +1]; //计算nums的累加和 for(int i = 1; i< preSum.length;i++) {原创 2022-03-20 23:33:12 · 144 阅读 · 0 评论 -
汉诺塔问题详解
汉诺塔问题详解 汉诺塔问题如图,将n个盘子从A柱(通过B柱中转)移动到C柱,每次移动一个盘子,并且在任意情况下不允许大盘子放在小盘子上面,请写出算法。 void hanoi(int n,int b,int a,int c) { if(n > 0){ hanoi(n-1,c,a,b); //将n-1个盘子借助c从a移动到b(方面最大的盘子移动到c) move(a,c); //move函数自己写表示直接移动一个盘子 hanoi(n-1,a,b,c); //再把b中的n-1个盘子从b中借助a原创 2022-02-28 16:00:21 · 415 阅读 · 0 评论