算法
月上小楼
12345
展开
-
搜索算法-DFS BFS总结
通过几天的刷题,对dfs和bfs算法有了更深一步的认识,下面来总结一下:一、DFS1.核心一条路走到黑+回溯2.分析针对蓝桥杯历年真题中的剪格子来说:(1)dfs方法的参数:变化的坐标x、y,变化的格子数,变化的数之和。(2)递归出口:当和等于数组和的一半时,将全局变量min更新,回溯。当和大于数组和的一半时,直接回溯。(3)向当前格子的三个方向“探测”:符合条件的标成已访问,避免进行下一次递归时,造成死循环。当前递归完成后,再将其标成未访问,避免影响回溯后其他路径。(4)递归完成原创 2020-08-06 12:00:08 · 331 阅读 · 0 评论 -
快速排序
细节:1.基点是最左边的数时,j指针先移动,从小到大排列2.基点是最右边的数时,i指针先移动,从小到大排列3.如果想降序排列,需要改变的是基点设到最右面,并且使i指针找比基点小的数,j指针找比基点大的数。import java.util.Scanner;public class T7003_QuickSort { public static void main(String[] args) { Scanner in=new Scanner(System.in); int n=in.ne原创 2020-08-05 17:43:59 · 145 阅读 · 0 评论 -
一维前缀和、二维前缀和、一维差分、二维差分
一、一维前缀和import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); int n=in.nextInt(); int m=in.nextInt(); int[] prefix=new int[n+1]; int[] arr=new int[n+1]; for (int i = 1; i <原创 2020-08-04 18:35:20 · 244 阅读 · 0 评论 -
力扣——dfs和回溯(17题 电话号码的字母组合)
一、前言其实,自我感觉,回溯法和dfs算法没什么特别大的区别,dfs里渗透着回溯,回溯的前提是dfs(目前从所刷的题目上来看是这样的)。但是,我从别人的博客上了解到:1.概述:(1)回溯法:是一种选优搜索法(试探法),被称为通用的解题方法,这种方法适用于解一些组合数相当大的问题。通过剪枝(约束+限界)可以大幅减少解决问题的计算量(搜索量)。(2)DFS:是一种用于遍历或搜索树或图的算法...原创 2020-04-05 13:57:06 · 469 阅读 · 1 评论