java
神威
接建模思路
展开
-
迪杰斯特拉算法
迪杰斯特拉算法最终返回一个表distanceMap,是所有可以到达点的最短路径A B C D0 5 3 5public static HashMap<Node,Integer> dijkstra1(Node from){//from 指定起点//key 终点//value 最小距离//如果没有记录,那么距离为正无穷HashMap<Node,Integer> distanceMap=new HashMap<>();distanceMap.put(f原创 2021-10-22 14:27:15 · 106 阅读 · 0 评论 -
队列实现二叉树宽度优先遍历
队列实现二叉树宽度优先遍历1.按层遍历先压入头结点弹出并打印压入左右孩子public void level(Node head){if (head==null){return null;}Queue<Node> queue =new LinkedList<>();queue.add(head);while(!queue.isEmpty()){Node cur=queue.poll();System.out.println(cur.value);if原创 2021-10-18 12:24:18 · 84 阅读 · 0 评论 -
快慢指针1
快慢指针奇数返回中点,偶数返回上中点slow=head.next;fast=head.next.next;while(head!=null){if(head==null||head.next=null||head.next.next==null;){return head;}if(fast.next!=null&&fast.next.next!=null){ slow=slow.next; fast=fast.next.next;}return slow;}原创 2021-10-17 18:53:04 · 126 阅读 · 1 评论 -
二分线段树
二分线段树数组为[✖,3,5,7,9],即n[4+1],第一位0弃而不用,数组从1开始,方便为以后的孩子进行数组命名。线段树申请起码要比原来数组4倍空间,关于为什么需要四倍,在这里不做赘述。这次需要4+2+1+1=8个盒子不用的空间通通为0,同上,第一个格子弃而不用,从1开始,这样做的好处就是,所有的左孩子下标都是父下标的2倍,所有的右孩子都是父下标的2倍+1import java.util.Scanner;public class Text { static int y[] =原创 2021-10-16 14:20:40 · 134 阅读 · 0 评论 -
异或 二进制 全排列
踢球膝盖骨折在家 day1import java.util.Scanner;public class Text { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a=51; int b=33; a=a^b;// 此时a=a^b,b=b b=a^b;// 此时b=a^b原创 2021-10-15 12:30:46 · 95 阅读 · 0 评论