ICode9

精准搜索请尝试: 精确搜索
  • HashMap和HashTable的异同2022-05-17 10:33:17

    比较 HashMap HashTable 存储结构 数组 + 链表/红黑树 数组 + 链表 扩容方式 oldCap * 2 oldCap * 2 + 1 K,V能否为null key, value 均可以为 null key, value 均不可以为 null 线程是否安全 线程不安全 线程安全     HashMap的存储规则:优先使用数组存储,

  • 23. 合并K个升序链表2022-05-16 22:32:37

    23. 合并K个升序链表 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。   示例 1: 输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[  1->4->5,  1->3->4,  2->6]将它们合并到一个有序链表中得

  • leetcoce-160 相交链表2022-05-16 21:02:31

    Given the heads of two singly linked-lists headA and headB, return the node at which the two lists intersect. If the two linked lists have no intersection at all, return null. For example, the following two linked lists begin to intersect at node c1: The

  • 力扣简83 删除排序链表中的重复元素2022-05-16 15:00:26

    //注意这个ListNode类需要写在solution外面,要不然main里没法使用。而且main中类的新建要用 //自己写的: 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 //第一种思路的时候出错了 直接用l.next和l.next.next导致都混乱了 以后链

  • 21. 合并两个有序链表2022-05-15 14:34:29

    class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { if(list1 == null){ return list2; } if(list2 == null){ return list1; } ListNode res = list1.val < list2.

  • 线性表的的链表存储结构2022-05-14 23:00:38

    1 . 线性链表的概念:   线性表的链式存储结构即线性链表   线性链表中的每一个元素有两部分组成 (数据域和指针域), 数据域存放数值本身, 指针域 用来存放与当前数值有关的另一个元素的地址 2. 单向链表   对于单向链表而言,链表中的每一个元素都要保存一个指向下一个元素的

  • Redis2022-05-13 15:01:58

    一、数据类型   1、String类型   1.1 基本的key-value类型,Redis利用C语言写的,但是Redis并没有用C的字符串表示,而是自己构建了一种简单的动态字符串。相比C的原生字符串,Redis的SDS不光可以保存文本数据还可以保存二进制数据,并且获取字符串长度的复杂度为O(1)   1.2 常用命令:s

  • 《算法图解》第二章 选择排序2022-05-13 12:03:33

       1、数组   ①数组元素是连在一起的。   ②同一个数组中,元素的类型都必须相同(都为int、double等)。   ③支持随机访问,因此读取速度更快。   2、链表   ①链表元素是分开的,每个元素都存储下一个元素的地址。   ②仅支持顺序访问,但擅长于插入和删除操作(只需修改前一

  • 2022-5-13 链表2022-05-13 09:33:20

    25. K 个一组翻转链表 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点

  • LC.206 反转单链表 解题笔记2022-05-13 01:02:28

    题目链接: https://leetcode.cn/problems/reverse-linked-list/ 笔记 想法 凡是涉及链表的题,最好画图后再做 本题是实现单链表的反转,比较简单。 要实现链表反转,我们可以将目的分解成 修改每一个节点的指针指向 将原本的首节点指向 Null ,原本的尾节点不再指向Null,而是指向上一个节

  • 2022-5-12 链表2022-05-12 21:01:47

    876. 链表的中间结点 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * Lis

  • 【算法day6】哈希表、有序表、链表(反转单链表)2022-05-11 20:01:07

    哈希表的简单介绍 1)哈希表在使用层面上可以理解为一种集合结构 2)如果只有key,没有伴随数据value,可以使用HashSet结构(C++中叫UnOrderedSet) 3)如果既有key,又有伴随数据value,可以使用HashMap结构(C++中叫UnOrderedMap) 4)有无伴随数据,是HashMap和HashSet唯一的区别,底层的实际结构是一

  • HashMap,ConcurrentHashMap2022-05-10 23:01:10

    HashMap Node数组 初始化是16,扩容因子0.75(As a general rule, the default load factor (.75) offers a good tradeoff between time and space costs.时间和空间平衡),扩容2的N次幂。 扩容条件:0.75,size必须要大于64。 节点是链表,大于8变成为红黑树,为什么8为临界值,通过poisson distr

  • 两个链表的第一个公共节点(相交链表)2022-05-09 20:35:17

    一、思路 集合法,先遍历第一个链表,将节点放入集合,然后遍历第二个链表判断其节点是否在集合中. 二、程序实现 var getIntersectionNode = function(headA, headB) { const set=new Set(); let tempA=headA; while(tempA){ set.add(tempA); tempA=tempA.

  • ConcurrentHashMap的原理,jdk7和jdk8版本的区别2022-05-09 19:02:36

    首先它和HashTable一样,是线程安全,但是HashTable底层是加了synchronized全局锁,而ConcurrentHashMap底层是分段锁实现的,比HashTable效率更高。 jdk7:   数据结构:ReentrantLock+Segment+HashEntry,一个Segment包含一个HashEntry数组,每个HashEntry又是一个链表结构   元素查询:二次ha

  • Map2022-05-09 15:32:52

    Map:是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复(可存在一个null),而值对象可以重复,并且值对象还可以是 Map 类型的,就像数组中的元素还可以是数组一样。Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。其中,HashMap 类按

  • Java集合(五)LinkedHashMap、TreeMap、ConcurrentHashMap2022-05-09 11:34:49

    LinkedHashMap: 是数组+双向链表的结构 TreeMap:是数组+红黑树的结构 ConCurrentHashMap  1.7 :数组+segement+分段锁 1.8:数组+链表+红黑树   https://blog.csdn.net/m0_37741420/article/details/123614527

  • Java并发容器简介2022-05-08 19:00:47

    一、容器介绍 Java中的容器主要可以分为四大类,分别是List、Map、Set和Queue,不考虑多线程并发的情况下,容器类一般使用ArrayList、HashMap等线程不安全的类,效率更高。在并发场景下,常会用到ConcurrentHashMap、ArrayBlockingQueue等线程安全的容器类,虽然牺牲了一些效率,但却得到了安全

  • 数据结构学习小记-栈和队列-22022-05-08 18:34:17

    栈和队列 栈是先进后出的数据结构;分为数据栈和链表栈;数组栈使用数组进行功能的模拟,链表栈使用链表的思路去设计;链表栈有分为动态链表栈和静态链表栈; 2.入栈出栈都对top进行操作。 队列是先进先出,在表的一端进行插入,在另一端进行删除的数据结构;出队和入队时,分别对头指针和尾指

  • Leetcode 题解2022-05-08 13:04:23

    本文从 Leetcode 中精选的题目,去除了某些繁杂但是没有多少算法思想的题目,同时保留了面试中经常被问到的经典题目。 算法思想 双指针 排序 贪心思想 二分查找 分治 搜索 动态规划 数学 数据结构相关 链表 树 栈和队列 哈希表 字符串 数组与矩阵 图 位运算

  • 8.1:双向链表实现双端队列2022-05-08 11:03:04

    8.1:双向链表实现双端队列   双端队列,玩的head 和tail指针     1、双向链表   1 public static class Node<T> { 2 public T value; 3 public Node<T> last; 4 public Node<T> next; 5 6 public Node(T data) { 7 value = dat

  • pwn - Heap Exploitation2022-05-07 02:32:26

    堆 今天整理了一下Heap部分的一些笔记,小汇总一下 在程序运行过程中,堆可以提供动态分配的内存,允许程序申请大小未知的内存。堆是程序虚拟空间地址的一块连续的线性区域,由低地址向高地址上增长 堆题漏洞一般在delete()函数上,多半是指针未清空导致成为野指针,从而可以进行UAF等 实现

  • 7.2:链表删除给定值2022-05-06 19:03:40

    7.2:链表删除给定值   1 public static Node removeValue(Node head, int num) { 2 // head来到第一个不需要删的位置 3 while (head != null) { 4 if (head.value != num) { 5 break; 6 } 7 head =

  • lc876. 链表的中间结点2022-05-05 16:35:04

    # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def middleNode(self, head: ListNode) -> ListNode: slow = head

  • 827. 双链表2022-05-04 20:00:26

    题目链接 827. 双链表 实现一个双链表,双链表初始为空,支持 \(5\) 种操作: 在最左侧插入一个数; 在最右侧插入一个数; 将第 \(k\) 个插入的数删除; 在第 \(k\) 个插入的数左侧插入一个数; 在第 \(k\) 个插入的数右侧插入一个数 现在要对该链表进行 \(M\) 次操作,进行完所有操作后,从左到右

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有