代码随想录打卡

这里写目录标题

    • 1.数组部分
      • 1.1二分查找
      • 1.2移除元素
      • 1.3 有序数组的平方
      • 1.4长度最小的子数组
      • 1.5螺旋矩阵II
    • 2. 链表部分
      • 2.1移除链表元素
      • 2.2设计链表
      • 2.3反转链表
      • 2.4两两交换相邻的节点
      • 2.5删除链表的倒数第n个节点
      • 2.6环形链表II
      • 2.7链表相交
    • 3.哈希表

1.数组部分

1.1二分查找

在这里插入图片描述

class Solution {public int search(int[] nums, int target) {if(nums.length==0)return -1;int l=0,r=nums.length-1;while(l<=r){int mid=l+r>>1;if(nums[mid]==target){return mid;}else if(nums[mid]<target){l=mid+1;}else{r=mid-1;}}return -1;}
}

1.2移除元素

在这里插入图片描述
在这里插入图片描述

class Solution {//双指针算法public int removeElement(int[] nums, int val) {int i=0;//标记目前位置 for(int j=0;j<nums.length;j++){if(nums[j]!=val){nums[i]=nums[j];i++;}}return i;}
}

1.3 有序数组的平方

在这里插入图片描述

class Solution {public int[] sortedSquares(int[] nums) {int n=nums.length;int[] ans=new int[n];int k=n-1;int i=0,j=nums.length-1;//类似于归并排序while(i<=j){if(nums[i]*nums[i]<nums[j]*nums[j]){ans[k--]=nums[j]*nums[j];j--;}else{ans[k--]=nums[i]*nums[i];i++;}}return ans;}
}

1.4长度最小的子数组

在这里插入图片描述

class Solution {public int minSubArrayLen(int target, int[] nums) {int minlen=0x3f3f3f3f;int sum=0;int j=0;for(int i=0;i<nums.length;i++){sum+=nums[i];while(sum>=target){//缩小区间minlen=Math.min(minlen,i-j+1);sum-=nums[j];j++;//   }}if(minlen==0x3f3f3f3f)return 0;return minlen;}
}

1.5螺旋矩阵II

在这里插入图片描述

class Solution {static boolean[][] st;public int[][] generateMatrix(int n) {st=new boolean[n][n];int[] dx={0,1,0,-1},dy={1,0,-1,0};int[][] ans=new int[n][n];int x=0,y=0,d=0;//横,纵坐标,转向指针for(int i=1;i<=n*n;i++){ans[x][y]=i;st[x][y]=true;int a=x+dx[d],b=y+dy[d];if(a<0 || a>=n || b<0 || b>=n || st[a][b]){d=(d+1)%4;a=x+dx[d];b=y+dy[d];}x=a;y=b;}return ans;}
}

2. 链表部分

2.1移除链表元素

在这里插入图片描述

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode removeElements(ListNode head, int val) {if(head==null)return null;ListNode dummy=new ListNode(-1);dummy.next=head;ListNode cur=dummy;while(cur.next!=null){if(cur.next.val==val){cur.next=cur.next.next;}else cur=cur.next;}return dummy.next;}
}

2.2设计链表

2.3反转链表

在这里插入图片描述

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {ListNode pre=null;ListNode cur=head;while(cur!=null){ListNode next=cur.next;cur.next=pre;pre=cur;cur=next;}return pre;}
}

2.4两两交换相邻的节点

在这里插入图片描述

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy=new ListNode(-1);dummy.next=head;ListNode cur=dummy;while(cur.next!=null && cur.next.next!=null){ListNode a=cur.next;ListNode b=cur.next.next;cur.next=b;a.next=b.next;b.next=a;cur=a;}return dummy.next;}
}

2.5删除链表的倒数第n个节点

在这里插入图片描述

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummy=new ListNode(-1);dummy.next=head;ListNode cur=head;int cnt=0;while(cur!=null){cnt++;cur=cur.next;}cur=dummy;cnt=cnt-n;while(cnt-->0)cur=cur.next;cur.next=cur.next.next;return dummy.next;}
}

2.6环形链表II

‘

/*** Definition for singly-linked list.* class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public ListNode detectCycle(ListNode head) {ListNode slow=hasCycle(head);if(slow==null)return null;else{ListNode fast=head;while(fast!=slow){fast=fast.next;slow=slow.next;}}return slow;}public static ListNode hasCycle(ListNode head){ListNode slow=head;ListNode fast=head;while(fast!=null && fast.next!=null){fast=fast.next.next;slow=slow.next;if(fast==slow)return slow;}return null;}
}

2.7链表相交

在这里插入图片描述

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if(headA==null || headB==null)return null;int lenA=len(headA);int lenB=len(headB);ListNode curA=headA;ListNode curB=headB;if(lenA>lenB){int t=lenA-lenB;for(int i=0;i<t;i++){curA=curA.next;}while(curA!=null && curA!=curB){curA=curA.next;curB=curB.next;}return curA;}else{int t=lenB-lenA;for(int i=0;i<t;i++){curB=curB.next;}while(curA!=null && curA!=curB){curA=curA.next;curB=curB.next;}return curA;} }public static int len(ListNode head){int cnt=0;ListNode cur=head;while(cur!=null){cnt++;cur=cur.next;}return cnt;}}

3.哈希表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21284.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我司的短信接口被刷了

如何发现的 成本分摊系统&#xff0c;将成本分摊给业务部门时&#xff0c;业务部门对账&#xff0c;发现某一类型的短信用量上涨了100多倍 排查调用来源时&#xff0c;发现来源为C端用户&#xff0c;由于调用量异常高&#xff0c;业务反馈近期无活动&#xff0c;因此怀疑被刷…

服务器数据库中了360后缀勒索病毒怎么办,如何预防勒索病毒攻击?

随着网络技术的不断发展&#xff0c;企业的计算机服务器也受到了网络安全威胁&#xff0c;近日&#xff0c;很多企业的服务器被360后缀勒索病毒攻击&#xff0c;导致企业的数据库中的许多重要数据被加密&#xff0c;无法正常读取打开。360后缀勒索病毒数据BeijingCrypt勒索病毒…

请求响应-日期时间参数的接受

日期参数 由于从前端发送的请求中&#xff0c;日期的格式可能各不相同&#xff0c;使用DateTimeFormat注解完成日期参数格式的转换具体关键代码如下&#xff1a; 在postman中发出对应请求携带对应参数结果如下&#xff1a; 参数名称要与方法中的形参名称一致&#xff0c;免得…

【Python】PyCharm中调用另一个文件的函数或类

&#x1f389;欢迎来到Python专栏~PyCharm中调用另一个文件的函数或类 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;Python学习专栏 文章作者技术和水平有限&#xff0c;如果文中出现错误&…

【IMX6ULL驱动开发学习】18.中断下半部(tasklet、工作队列、中断线程化)

下图表述了Linux内核的中断处理机制&#xff0c;为了在中断执行时间尽量短和中断处理需完成的工作尽量大之间找到一 个平衡点&#xff0c; Linux将中断处理程序分解为两个半部&#xff1a; 顶半部&#xff08;Top Half&#xff09; 和底半部&#xff08;Bottom Half&#xff09…

C语言a---b

C语言的编译遵循贪心读法&#xff0c;也就是说&#xff0c;对于有歧义的符号&#xff0c;编译器会一直读取&#xff0c;直到它的意思完结&#xff1b; a---b&#xff0c;是a-- -b还是a- --b&#xff0c;根据贪心法则&#xff0c;读到第二个减号&#xff0c;意思完结&#xff0c…

你知道mp3转换器怎么用吗?分享在线音频转换mp3怎么弄

飒飒&#xff1a;嘿&#xff0c;你有没有想过如何将在线音频转换为mp3格式&#xff1f; 潇潇&#xff1a;是的&#xff0c;我确实有过这个需求。在网上找到了一些工具和方法&#xff0c;可以帮助我们完成这个任务。 飒飒&#xff1a;那太好了&#xff01;你能告诉我一些详细的…

【新版系统架构】系统架构设计师教程全篇知识点提炼

第一章-绪论 架构的定义&#xff1a; 1、架构体现在组件中的一个系统的基本组织、彼此的关系和环境的关系及指导它的设计和发展的原则 2、系统是组织起来完成某一特定功能或一组功能的组件集 3、环境或者上下文决定了对这个系统的开发、运作、政策以及会对系统造成其他影响的…

开放式耳机哪个好?开放式耳机选购推荐

相比入耳式耳机&#xff0c;近几年流行的开放式耳机似乎更受大众欢迎&#xff0c;不入耳的设计&#xff0c;佩戴稳固舒适不容易掉落&#xff0c;也不伤耳&#xff0c;不仅能够提升幸福感还能听到周围环境声&#xff0c;避免在长期佩戴后舒适度下降的问题&#xff0c;对于产生的…

nginx日志分析,实时可视化工具goaccess

一款可以实时分析NGINX访问日志&#xff0c;并且支持可视化的软件 GoAccess - Visual Web Log Analyzer github如下&#xff1a;GitHub - allinurl/goaccess: GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or th…

使用npm和nrm查看源和切换镜像

一、使用npm查看当前源、切换淘宝镜像、切换官方源 &#xff08;1&#xff09;npm查看当前源&#xff1a; npm get registry &#xff08;2&#xff09;npm设置淘宝镜像源&#xff1a; npm config set registry http://registry.npm.taobao.org &#xff08;3&#xff09;n…

mysql函数练习

创建表sch 向表中加入数据 1、创建一个可以统计表格内记录条数的存储函数 &#xff0c;函数名为count_sch() CREATE DEFINERroot% FUNCTION count_sch() RETURNS int(11) BEGINDECLARE total INT DEFAULT 0;#Routine body goes here...SELECT count(1) into total from sch;IN…