• 2024-06-30力扣-61. 旋转链表
    1.题目介绍题目地址(61.旋转链表-力扣(LeetCode))https://leetcode.cn/problems/rotate-list/题目描述给你一个链表的头节点head,旋转链表,将链表每个节点向右移动 k 个位置。 示例1:输入:head=[1,2,3,4,5],k=2输出:[4,5,1,2,3]示例2:输入:head=[0,1,2],k=
  • 2024-06-30Java-HashMap和ConcurrentHashMap的区别
    Java-HashMap和ConcurrentHashMap的区别一、关键区别1.数据结构2.线程安全3.性能4.扩容机制二、源码简析1.并发控制机制2.数据结构转换:链表转红黑树3.扩容机制触发hashMap和concurentHashMap扩容机制的条件三、putIfAbsent方法computeIfAbsent方法区别​在Java
  • 2024-06-30leetCode.92. 反转链表 II
    leetCode.92.反转链表II题目思路代码/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nullptr){}*ListNod
  • 2024-06-30Mysql--B+树--数据结构
    基本概念-B+树/B树B树(B-tree)和B+树(B+tree)是常见的自平衡搜索树数据结构,用于在存储和检索大量数据时提供高效的操作。它们具有一些共同的基本概念:节点(Node):B树和B+树的数据存储在节点中。节点可以包含多个关键字和对应的指针。在B树中,叶子节点和内部节点的结构相同,都存储数据
  • 2024-06-2402线性表
    线性表线性表是一种逻辑结构,是抽象概念;顺序表、链表是存储结构,两者是不同层次的概念线性表由数据元素组成,数据元素由数据项组成线性表的位序从1开始线性表的基本操作voidInitList(&L);//初始化intLenth(L);//获得表长intLocateElem(L,e);//按值查找操作ElemTypeG
  • 2024-06-24链表实现队列
    #include<iostream>#include<stdexcept>//定义链表节点结构structNode{intdata;Node*next;};//链表队列类classLinkedListQueue{private:Node*front;//队头指针Node*rear;//队尾指针public://构造函数,初始化队头和队尾指针
  • 2024-06-23数组和链表-《算法图解》学习
    内存工作原理需要将数据存储到内存时,你请求计算机提供存储空间,计算机给你一个存储地址。需要存储多项数据时,有两种基本方式——数组和链表。但它们并非都适用于所有的情形,因此知道它们的差别很重要。接下来介绍数组和链表以及它们的优缺点。 ==============tobeconntinued
  • 2024-06-23Java链表
    在Java中,链表是一种动态数据结构,它不需要在内存中分配一块连续的空间,而是通过指针将节点连接起来。链表由节点(Node)的集合组成,每个节点包含两部分内容:数据(data)和指向下一个节点的引用(next)。Java中常见的链表类型有单向链表、双向链表和循环链表:单向链表(SinglyLinkedList):每
  • 2024-06-23[Java并发]ConcurrentHashMap
    ConcurrentHashMapHashMap和ConcurrentHashMap的区别主要区别就是hashmap线程不安全,ConcurrentHashMap线程安全HashMap线程不安全,有以下两个问题put覆盖问题比如有两个线程A和B,首先A希望插入一个key-value对到HashMap中,首先计算记录所要落到的桶的索引坐标,然后获取到该桶
  • 2024-06-22java面试题--基础上
    一、说说&和&&的区别?作为运算符:&将二进制的每一位进行与运算作为逻辑运算符:两者都是与,&&如果左边为假则终止右边运算,即短路运算。&则需要把两边的比较执行完。二、int和Integer的区别int是Java的基本数据类型,而Integer是int的包装类int直接存储整数值,而Integer是一个对象,包含
  • 2024-06-22LeetCode:经典题之206、92题解及延伸
    系列目录88.合并两个有序数组52.螺旋数组567.字符串的排列643.子数组最大平均数150.逆波兰表达式61.旋转链表160.相交链表83.删除排序链表中的重复元素389.找不同目录系列目录206.反转链表92.反转链表II类和结构体访问修饰符206.反转链表
  • 2024-06-22Redis中集合的底层实现原理
            Redis中对于Set类型的底层实现,直接采用了hashTable。但对于Hash、ZSet、List集合的底层实现进行了特殊的设计,使其保证了Redis的高性能。        对于Hash与ZSet集合,其底层的实现实际有两种:压缩列表zipList,与跳跃列表skipList。这两种实现对于用户来
  • 2024-06-22Map集合之HashMap细说
            最近在看面试题,看到了hashmap相关的知识,面试中问的也挺多的,然后我这里记录下来,供大家学习。Hashmap为什么线程不安全jdk1.7中,在扩容的时候因为使用头插法导致链表需要倒转,从而可能出现循环链表问题或者数据丢失的问题jdk1.8中,在put方法中,假设A,B两个线
  • 2024-06-22数据结构:为什么说链表是顺序表的升级版(c语言实现)
    前言:  我们在之前的几篇文章中详细的讲解了顺序表的特点,增删改查操作和动态顺序表的优点,并使用顺序表的底层结构实现了通讯录项目,似乎顺序表是一个非常完美的数据结构,它可以实现按照需求实现增删查改,对内存的控制也较为合理,空间都是在需要时手动开辟的。但是顺序表真的完
  • 2024-06-22ConcurrentHashMap(并发工具类)
    并发工具类在JDK的并发包里提供了几个非常有用的并发容器和并发工具类。供我们在多线程开发中进行使用。5.1ConcurrentHashMap5.1.1概述以及基本使用在集合类中HashMap是比较常用的集合对象,但是HashMap是线程不安全的(多线程环境下可能会存在问题)。为了保证数据的安全性我
  • 2024-06-22【初阶数据结构】深入解析带头双向循环链表:探索底层逻辑
  • 2024-06-22随机链表的复制 && 排序链表
    随机链表的复制题目.-力扣(LeetCode)思路:思路:       ①一个结点一个节点去拷贝,当拷贝了第一个节点的时候,把原节点与拷贝节点连接起来,直接到所有的节点拷贝完毕,这样做的目的是为下一步处理random指针做准备      ②处理random       ③处理
  • 2024-06-22LeetCode刷题day3——链表part1
    203.移除链表元素这个题是二刷了一开始这个思路就是利用虚拟头结点,但是中间很多小细节都考虑不到,例如初始化一个新的链表,循环条件的写法等classSolution{public:structListNode{intval;ListNode*next;ListNode(intx):val(x),next(NULL){};//定义构
  • 2024-06-22LeetCode刷题day4——链表part2
    24.两两交换链表中的节点用pre代表第1个节点,cur代表它后面的相邻节点,tmp存储cur->next。但是问题找不到怎么返回新的节点。想着就循环一次,在第一次交换的时候就确认新的头结点。但还存在很多问题,具体如下:classSolution{public:ListNode*swapPairs(ListNode*he
  • 2024-06-21【数据结构与算法 刷题系列】判断链表是否有环(图文详解)
                   
  • 2024-06-21一千题,No.0089(链表元素分类)
    给定一个单链表,请编写程序将链表元素进行分类排列,使得所有负值元素都排在非负值元素的前面,而[0,K]区间内的元素都排在大于K的元素前面。但每一类内部元素的顺序是不能改变的。例如:给定链表为18→7→-4→0→5→-6→10→11→-2,K为10,则输出应该为-4→-6→-2→7→0→5→10
  • 2024-06-20链表插入的小技巧
    一个带有优先级的链表:structlist{structlist*next;u32priority;} 如果要按照优先级插入某个新节点node,算法一般会写成:intlist_insert(list**head,list*new){if(head==null||*head==null||new==null)return1;list*prev
  • 2024-06-20算法题---判断链表中是否有环,并找出环的入口
    方案一、利用Set集合不会重复的原理booleanjudgeCycle(Nodehead){Set<Node>visited=newHashSet<>();Nodenode=head;while(node!=null){if(visited.contains(node))returntrue;visi
  • 2024-06-20【代码】--库函数学习 ftp通信 相关
    1. FTP介绍 (1)主动模式(PORT): 服务器主动去连接客户端的数据端口 (2)被动模式(PASV): 客户端主动去连接服务器的数据端口ftp客户端通信流程(编程流程)如下:1.客户端用账号、密码进行登录。2.提交主动模式还是被动模式。3.如果是被动模式,需要去连接服务器开放的数据
  • 2024-06-202024年 Java 面试八股文(20w字)
    第一章-Java基础篇1、你是怎样理解OOP面向对象   难度系数:⭐面向对象是利于语言对现实事物进行抽象。面向对象具有以下特征:继承:继承是从已有类得到继承信息创建新类的过程封装:封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口多态性:多态性是指允