- 博客(13)
- 收藏
- 关注
原创 链表-Java-力扣142. 环形链表 II
1. 题目 题目链接142. 环形链表 II 2. 思路 设置快慢指针,快指针一次走两步,慢指针一次走一步,当他们第一次相遇的时候,将快指针放到头部,然后快指针和慢指针同时一人走一步,然后相遇的节点就是入口位置。 3. 代码 /** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x
2021-07-17 22:29:09
234
1
原创 链表-Java-力扣138. 复制带随机指针的链表
1. 题目 题目链接138. 复制带随机指针的链表 2. 思路 使用hashmap存储旧的节点和新的节点,然后利用旧节点的指向关系去构建新的节点的指向关系。 3. 代码 /* // Definition for a Node. class Node { int val; Node next; Node random; public Node(int val) { this.val = val; this.next = null;
2021-07-16 21:38:28
218
原创 链表-Java-力扣109. 有序链表转换二叉搜索树
1. 题目 题目链接109. 有序链表转换二叉搜索树 2. 思路 这道题挺有意思的,首先我们知道二叉搜索树的中序遍历为从小到大的,而且题目需要是构建一个平衡的二叉搜索树,并且给出了一个已经从小到大排序好的链表,因此我们需要每次从链表的中间出发,把中间的节点保存下来,然后作为根节点,左子树就是中间节点的左边部分链表重复上述过程,右子树就是中间节点右边链表重复上述过程,因此可以递归的处理。 这里需要注意的是:每次都使用快慢指针找到链表中间的节点的前一个节点,这样方便操作。 3. 代码 /** * Defini
2021-07-16 20:45:09
172
原创 链表-Java-力扣61. 旋转链表
1. 题目 题目链接61. 旋转链表 2. 思路 意思就是将最后的k个节点放到链表前面即可,如果k大于链表长度,取余数即可: 3. 代码 class Solution { public ListNode rotateRight(ListNode head, int k) { if (head == null || head.next == null) return head; // 先找到链表的长度 int len = 1; List
2021-07-13 22:06:33
173
原创 链表-Java-力扣706. 设计哈希映射
1. 题目 题目链接706. 设计哈希映射 2. 思路 主要是利用ArrayList数组,保存自己写的类Map,里面有key和value,然后设置一个合理的长度BUCKETS,生成哈希函数的值,每次将key转换为hash值,然后使用Iterator遍历做删除,插入和查询操作即可。 3. 代码 class MyHashMap { /** Initialize your data structure here. */ private class Map { public int
2021-07-13 21:28:09
253
原创 链表-Java-三指针-力扣24. 两两交换链表中的节点
1. 题目 题目链接:24. 两两交换链表中的节点 2. 思路 使用三指针每次交换两个节点,然后将三个节点依次向前移动两次,注意边界条件即可。 3. 代码 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } *
2021-07-13 21:21:42
131
原创 链表-双指针-力扣705. 设计哈希集合
1. 题目 题目链接:705. 设计哈希集合 2. 思路 定义一个链表,初始化HashSet的时候就初始化一个头结点,然后先写contains函数,添加时先判断是否有数据,没有就直接添加在头结点后面,删除时先判断是否存在,存在就使用双指针删除。 3. 代码 class MyHashSet { /** Initialize your data structure here. */ ListNode head; public MyHashSet() { head = n
2021-07-12 22:12:33
102
原创 链表-双指针-力扣1290. 二进制链表转整数
1. 题目 题目链接1290. 二进制链表转整数 2. 思路 2.1 菜鸡思路 刚开始是遍历一次链表,取得链表节点的数量,然后把这个数量作为二进制转换十进制的次方数。代码如下3.1所示。 2.2 大佬思路 不用获取链表长度,在遍历的过程中计算结果,因为每次读到的一个值可以看成是二进制串的最低位,然后将原来的结果×2在加上当前值即可。 3. 代码 3.1 菜鸡思路 class Solution { public int getDecimalValue(ListNode head) {
2021-07-12 21:27:45
119
原创 链表-双指针-力扣19. 删除链表的倒数第 N 个结点
1. 题目 题目链接: 19. 删除链表的倒数第 N 个结点. 2. 思路 双指针:定义两个指针,fast和slow,先让fast向前移动N次,然后再一起移动到fast为最后一个节点,此时slow在被删除的倒数第N个节点的前一个节点,只需要slow.next = slow.next.next即可。 当被删除的是head的时候,即N与链表的节点数量一样的时候,此时移动完成后,fast已经为null,因此只需要将head向后移动一次即可,即head = head.next; 3. 代码 class So
2021-07-12 17:22:52
134
原创 Python科学计算-Numpy和Pandas学习笔记(二)-Numpy的基本运算(chaochao`s Blog)
1 前言 本章介绍numpy的基本运算。 2 Numpy的基本运算 numpy的基本运算是对矩阵中每个元素进行相应的运算。 2.1 加减乘除 加、减、乘、除。 import numpy as np array1 = np.array([1, 2, 3, 4]) array2 = np.arange(5, 9) print('array1:\n', array1) print('array2:\n', array2) # 加法就是对应元素分别相加 add = array1 + array2 print('ad
2020-06-26 17:10:31
426
原创 Python科学计算-Numpy和Pandas学习笔记(一)-安装、Numpy属性和常用方法(chaochao`s Blog)
前言 由于项目的原因,最近开始学习机器学习的相关内容,在写文字笔记的时候发现我写的字确实很丑、很难看,并且记笔记的速度也很慢,由此萌生了编写自己博客的想法。从今天开始,我会将学习的笔记以博客的方式记录下来,方便后续查看,也能在记录的过程中编写一次代码,记得更加牢固。 安装 打开pycharm的控制台,直接在里面输入下面命令。或者cmd控制台也行。 Numpy的安装 # python 2.x 用户安装命令 pip install numpy # python 3.x 用户安装命令 pip3 install n
2020-06-26 10:30:15
318
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人