数据结构与算法
文章平均质量分 71
数据结构与算法
安娜和她的笔记本
攀一座山,追一个梦
展开
-
基础篇(四):链表
链表-百度百科 手写链表(单链表中结点的定义): public class SinglyListNode { int val; SinglyListNode next; SinglyListNode(int x){val=x;} } 在大多数情况下,我们将使用头结点(第一个结点)来表示整个列表。 1.哨兵节点 哨兵节点是为了简化处理链表边界条件而引入的附加链表节点。哨兵节点通常位于链表的头部,它的值没有任何意义。在一个有哨兵节点的链表中,从第2个节点开始才真正保存有意义的信息。原创 2022-04-07 08:09:17 · 249 阅读 · 0 评论 -
基础篇(三):字符串
1.字符串的基础知识 字符串由任意长度(长度可能为0)的字符组成,是编程语言中表示文本的数据类型。Java中用定义的类型String来表示字符串。 String类型的常用函数: 函数 函数功能 charAt 返回指定下标处的字符 compareTo 按照字典顺序比较两个字符串 equals 判断两个字符串的长度和内容是否相同 indexOf 返回字符串中某个字符或子字符串首次出现的下标位置 lastIndexOf 返回字符串中某个字符或子字符串最后出现的下标位置 leng原创 2022-04-07 08:07:17 · 461 阅读 · 0 评论 -
基础篇(二):数组
数组有两点要注意: 数组下标都是从0开始的。 数组内存空间的地址是连续的 正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址(不能直接插入或删除)。 双指针 双指针一般两类,一类是「快慢指针」,一类是「左右指针」。前者主要解决链表中的问题,比如典型的判定链表中是否有环;后者主要解决数组(或字符串)中的问题,如二分查找。 141. 环形链表 - 力扣(LeetCode) 142. 环形链表 II - 力扣(LeetCode) 704. 二分查找 - 力扣(原创 2022-03-31 19:07:52 · 966 阅读 · 0 评论 -
基础篇(一):位运算
位运算是把数字用二进制形式表示之后,对每位上0或1的运算。 1.位运算: 位运算只有六种: ~(非)、&(与)、|(或)、^(异或)、<<(左移)和>>(右移)。 非运算对整数的二进制按位取反,0取反得1,1取反得0。下面对8位整数进行非运算: ~10001010=01110101,~00001010=11110101 与、或、异或的运算: 与(&) 0&0=0 1&0=0 0&1=0 1&1=1 或(|原创 2022-03-30 14:53:59 · 1089 阅读 · 0 评论
分享