算法
liu_xiansen
这个作者很懒,什么都没留下…
展开
-
反转单链表和双链表
反转单链表和双链表,额外空间复杂度为O(1)//两个变量,一个保存当前节点的之前的next,一个保存当前节点,public static Node reverseList(Node head){ Node oldNext = null; Node newNext = null; while(head.next!=null){ //将当前节点的next保存...原创 2018-09-25 22:08:24 · 103 阅读 · 0 评论 -
旋转n*n的矩阵和转圈打印矩阵
旋转矩阵public static void Rotate(int[][] arr){ int ar = 0; int ac = 0; int dr = arr.length-1; int dc = arr[0].length-1; while(ar<dr){ rotateMatrix(arr,ar++,ac++,dr--,dc--); } } p...原创 2018-09-25 22:10:41 · 646 阅读 · 0 评论 -
反转单向双向链表
class Node{ int value; Node next; Node ref; public Node(int value){ this.value = value; }}public class ReverseList { public static Node reverseList(Node head){ Node oldNext = null; N...原创 2018-10-08 15:06:04 · 136 阅读 · 0 评论 -
之字形打印矩阵
初始化两个坐标点,一个每次向右,到达尽头往下;一个每次向下,到达尽头往右;打印两点之间的对角线public static void zigzag(int[][] arr){ if(arr==null){ return; } int ar = 0,ac = 0,br = 0,bc = 0; int rl = arr.length-1; int cl = arr[...原创 2018-10-08 15:09:12 · 353 阅读 · 0 评论 -
行列有序的矩阵中查找某个数是否存在
从右上角的坐标开始,若是比要找的数小,则向下;若比要找的数要大,则向左。直到到达左下角。public static void seek(int[][] arr,int num){ if(arr==null||arr.length==0){ return; } int ar = 0; int ac = arr[0].length-1; boolean flag = f...原创 2018-10-08 15:12:01 · 959 阅读 · 0 评论