![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
秋招
张小璇flying
在努力学习JAVA,希望一年以后自己能独立做个项目,找到实习工作,迎难而上,加油!
展开
-
寻找链表相交节点(相交引用地址相同)
面试题 02.07. 链表相交给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。思路:链表相交情况:两个指针同时走两个链表a指针先走第一个链表 AC+CD,b指针先走第二个链表BC+CD;若两个链表相交,两个指针会同时走到c点,此时a指针的路径AC+CD+BC=b指针的路径BC+CD+AC;若两个指针不相交,两个指针同时走完两个链表,最后值指针值都是null; ...原创 2022-02-15 10:57:59 · 346 阅读 · 0 评论 -
快慢指针:删除链表的倒数第n个结点
19.给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。快指针先走n步,之后快慢指针一起走;快指针走到null,慢指针正好到第n个节点的前驱节点快指针指向第一个节点,慢指针指向虚拟节点(方便指到前驱节点)/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * Li..原创 2022-02-13 21:16:22 · 201 阅读 · 0 评论 -
回文链表,数组
234.给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode...原创 2022-02-12 21:06:44 · 153 阅读 · 0 评论 -
三句话弄懂:反转部分链表
92:给你单链表的头指针 head 和两个整数left 和 right ,其中left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。收获:反转链表的穿针引线1)定义next指针2)将next指针后的链表与cur相连3)将next节点插入pre和pre.next之间。/** * Definition for singly-linked list. * public class ListNode { * ..原创 2022-02-12 19:27:39 · 411 阅读 · 0 评论 -
链表的增删改查
设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性prev以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第index个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为val的节点。插入后,新节点将成为链表的...原创 2022-02-12 10:57:38 · 1117 阅读 · 0 评论 -
反转链表:双指针法
给你单链表的头节点head,请你反转链表,并返回反转后的链表。指针:快慢指针pre指向前一个节点,cur指向当前节点,temp用于保存当前节点的下一个节点/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = va..原创 2022-02-12 10:50:05 · 242 阅读 · 0 评论 -
虚拟节点删除确定值的节点
收获:遍历整个链表判断条件是:cur.next!=null;链表遍历,中间指针的cur当前节点,当前节点变化的条件是,当前节点的next值不为val;/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; }原创 2022-02-11 18:24:42 · 437 阅读 · 0 评论 -
旋转矩阵边界问题
基础:list接口:List list = new ArrayList();方法:add;remove;收获:1.矩阵边界问题,关键是什么时候跳出循环测试代码:想用正方形,发现无法遍历中间的横杠和竖杠,这样的边界不能明确class Solution { public List<Integer> spiralOrder(int[][] matrix) { int loop =0; int startx = 0; ..原创 2022-02-09 19:58:32 · 370 阅读 · 0 评论 -
打印旋转矩阵
给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix。思路:题目重点:各个未知量的设定,遍历边界的确定;确定正方形每次遍历的对角坐标,起始坐标,最后的坐标正方形的对角坐标由偏移量所确定,start+(n-offset);收获:旋转矩阵,左闭右开,在行或列的末尾开始一条新的矩阵;这里每一种颜色,代表一条边,我们遍历的长度,可以看出每一个拐角处的处理规则,拐角处让给新的一条边来继续画。https:...原创 2022-02-09 12:43:25 · 522 阅读 · 0 评论 -
数组:滑动窗口,指针
给定一个含有n个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 收获:再看到题解思路之后,自己手动写了一遍,写的时候用if循环实现窗口移动,发现此时窗口的左边界不能移动,考虑到要使用while循环,但没理...原创 2022-02-08 21:40:24 · 1568 阅读 · 0 评论 -
977:有序数组的平方
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。基础:数组定义:int[] tes= {-3,-1,1,9}; 不是方括号在方法调用时不可以这样:sortedSquares({-3,-1,1,9});是要传入一个引用地址的数组思路:想使用冒泡排序一类的排序算法,发现自己不会排,扎心了,实践出真知呀!此题本身数组是有序的,不用考虑冒泡排序收获:此题还是涉及双指针,从我做的三个题来总结,好像数组涉及 区间、指针原创 2022-02-08 17:41:52 · 304 阅读 · 0 评论 -
数组:移除元素,快慢指针,数组覆盖
数组原创 2022-02-08 12:48:11 · 735 阅读 · 0 评论 -
数组刷题总结:二分法
704:二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。方法一:数组查找我暴力查找的,错误点:for语句规则;return 返回值(在for中写了两个if判断)程序最后没有把不满足条件的值返回方法二:二分法思考:做题之前:因为是有序数组,想直接通过for or while 写循环,写循环条件的时候,发现没法往左和右递归。题解后,原来是看二分法的中间原创 2022-02-08 10:48:19 · 581 阅读 · 0 评论 -
双非研究生备战秋招
秋招实习记录原创 2022-02-07 17:57:15 · 661 阅读 · 0 评论