
算法
凌云之音
学海无涯
展开
-
判断N皇后是否能够相互攻击
N皇后是常见的算法题,那我们如何去判断当前N皇后是否存在相互攻击情况呢?判断N皇后不能相互攻击需要满足一下三种条件:任意两个皇后不能在同一行任意两个皇后不能在同一列任意两个皇后不能在同一条对角线[主副对角线]上判断步骤借助辅助数组locations[N][N]来记录皇后的位置,每初始化一行(根据每一行输入的皇后位置)就记录一次记录的时候我们就借助上述条件来进行初始化,将当前皇后所在位置的行、列、主副对角线都记录(假设都置为1)每一行输入的皇后位置都会与辅助数组locations判断.原创 2020-08-07 11:09:20 · 886 阅读 · 0 评论 -
栈到队列,队列到栈的实现
1.利用两个栈实现一个队列import java.util.Stack;public class MyQueue { /** * 利用两个栈实现一个队列 * */ public static Stack<Integer> stack = new Stack<>(); public static Stack<Inte...原创 2020-04-28 12:14:36 · 246 阅读 · 0 评论 -
全排列问题
在解决全排列问题时,当数据规模不大时可以用枚举解决,一旦数据规模很大时(如1000000)这个时候用枚举显得不适合了,运行非常慢,就比如说我要得出1-9的全排列,那么用枚举去解决程序的复杂度O将会是9^9,这样就不合适用枚举了(当然不考虑运行时间的话可以用这个方法),这个时候用递归去实现就比较合适了。先上代码啦用递归实现全排列public class FullPermutation{ pub...原创 2018-03-30 15:39:33 · 322 阅读 · 0 评论 -
二分查找与递归式二分查找
二分查找public class BinarySearch{public static void main(String[] args) { int[] arr = {1,3,2,5,6,4,7,9,8}; Arrays.sort(arr); // TODO Auto-generated method stub int low = 0; int high = arr.length-1; ...原创 2018-03-30 15:11:51 · 552 阅读 · 0 评论