
数据结构与算法
hhhhyyyyy123
人生何所求,财富和自由
展开
-
左程云著算法与数据结构题目最优解笔记-反转单双链表
反转单双链表链表长度为n,时间复杂度为O(n),空间复杂度为O(1).反转单链表代码块public class Node { public int val; public Node next; public Node (int val){ this.val=val; }}public Node reverseList(Node head){原创 2016-09-04 15:14:19 · 844 阅读 · 0 评论 -
左程云著算法与数据结构题目最优解笔记-删除无序链表中重复的元素
删除无序链表中重复的元素方法1:使用哈希表,时间复杂度O(n),空间复杂度O(n) 方法2:类似选择排序的过程,时间复杂度O(n^2),空间复杂度O(1);方法1过程如下: 1. 生成一个哈希表,因为头节点不用删除,所以先将头节点存入哈希表中 2. 从头节点的下一个节点开始遍历,每遍历到一个节点,记录当前节点cur和它上一个节点pre。先检查cur是否在哈希表中,如果存在则删除cur节点,如果原创 2016-09-04 17:06:03 · 2084 阅读 · 1 评论 -
左程云著算法与数据结构题目最优解笔记-链表
链表链表是面试时被提及最频繁的数据结构。链表就是通过指针将一个个节点连接起来。链表是非连续的动态内存空间,链表的查找比数组慢,但是添加和删除比数组快。链表声明public class ListNode { int val; ListNode next; public ListNode(int val) { this.val = val; thi原创 2017-04-18 23:03:22 · 1086 阅读 · 0 评论 -
左程云著算法与数据结构题目最优解笔记-位运算
位运算位运算是把数字用二进制表示之后,对每一位上的0或者1的运算。理解位运算的第一步是理解二进制。二进制是指数字每一位都是0或者1,如十进制的2转换为二进制之后是10,而十进制的10转换为二进制之后是1010。在程序员圈子里有一个流传了很久的笑话,说世界上有10种人,一种人知道二进制,另一种人不知道二进制。 下面是几个常见的关于位运算的算法题:基本位运算位运算总共只有5种运算:与&,或|,异或^,左原创 2017-04-16 02:25:14 · 1431 阅读 · 0 评论