代码随想录打卡

news/2024/7/8 8:31:21

这里写目录标题

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

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;
    }
}

http://www.niftyadmin.cn/n/4407311.html

相关文章

深圳免费旅游景点大全|深圳旅游攻略(上)

大鹏所城 ☑ 门票&#xff1a;免费 ☑ 开放时间&#xff1a;09:00~17:30 ☑ 地址&#xff1a;深圳市龙岗区南门西路 ☑ 乘车路线&#xff1a;在大鹏王母站乘坐M741(原B756路)公交车到大鹏所城站下车 推荐理由&#xff1a;大鹏所城是深圳八景之首&#xff0c;中国历史文化名村、…

【PPT】高质量免费 PPT模板

一、PPT的制作 高质量的免费PPT资源

关于掠夺7甲能抢到几件,在什么地方抢呢? (转老公婆)

关于掠夺7甲能抢到几件,在什么地方抢呢? A3&#xff1a;掠夺7甲就是指7件通过收掠获得的甲&#xff0c;而长相一样的掠夺铠甲一共有9件&#xff0c;其中2件瘦子甲是靠空挖获得的。掠夺7甲的出处如下&#xff0c;不过具体的编制和刷新规律需要自己探索一下&#xff0c;这里不详…

深圳免费旅游景点大全|深圳旅游攻略(下)

蛇口海洋博物馆* ☑ 门票&#xff1a;免费 ☑ 开放时间&#xff1a;星期二至星期日上午9:3012:30&#xff0c;下午14:3018:30 ☑ 地址&#xff1a;蛇口街道办蛇口渔街上&#xff0c;石云路与南水路交会处 ☑ 乘车路线&#xff1a;地铁2号线东角头站D出口沿蛇口新街步行5分钟至新…

回答一些朋友的收掠问题(二)(转自:老公婆)

回答一些朋友的问题&#xff08;二&#xff09; Q1&#xff1a;如何防止稀有NPC被系统刷掉&#xff1f; A1&#xff1a;防止被刷掉的方法是要时刻保持海域人数&#xff08;至少达到5人&#xff09;&#xff0c;被刷新掉的原因很简单&#xff1a;假设海域5人时候可以同时刷新5个…

【技术沉淀】学习路线

一、图灵学院 阿里P8 学习路线图AQS同步器源码阿里P7P8学习路线数据结构与算法网站 二、其他途径 业务中台微服务架构

深圳周末好去处|深圳一日游推荐攻略

深圳周末去哪玩深圳一日游怎么玩呢 给大家分享几个不出shenzhen的好去处吧 各具特色满足不同人群游玩 深圳农家乐深圳海边深圳采摘等 蛛蛛侠轰趴馆 集吃喝玩乐于一体的轰趴馆 玩&#xff1a;多种主流娱乐设施、KTV、棋牌桌球体感游戏机 吃&#xff1a;各种小零食 喝&#xff1…

最近在做HongKong的Project.~~

&#xff5e;&#xff5e;&#xff5e;朋友&#xff0c;看完文章请记得回复或评论下哦 &#xff01;谢谢 &#xff01;&#xff5e;&#xff5e;&#xff5e; 不知道其他朋友跟香港人一起做过Project没? 香港人思维能力还是不错的, 所以跟他们做project挺累的.~~ 我们最近做…