代码随想录打卡

news2024/12/23 10:41:44

这里写目录标题

    • 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.coloradmin.cn/o/748729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

能耗感知虚拟光网络映射论文分析

1、M. Zhu, P. Gao, J. Zhang, X. Zeng, and S. Zhang, “Energy efficient dynamic virtual optical network embedding in sliceable-transponder-equipped eons,” in GLOBECOM 2017 - 2017 IEEE Global Communications Conference, 2017, pp. 1–6. 特点是&#xff1a;1&a…

干货 | 儿童智能手表数据安全要求标准设计

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。 一、选题与背景 儿童智能手表暴露的数据安全事件比较显著&#xff0c;我们主要针对这一个特殊的细分领域做研究。 二、研究报告 三、标准草案介绍 我们通过分析儿童智能手表的业务组成&#xff…

是不是考了cspm就能从事项目管理了?含金量高吗?

随着项目管理的发展&#xff0c;越来越多的人开始意识到项目管理的重要性。而CSPM&#xff08;项目管理专业人员能力评价&#xff09;则成为了很多人进入项目管理领域的门槛。但是&#xff0c;很多人对于CSPM的认识存在误区&#xff0c;认为只要考取了CSPM证书&#xff0c;就能…

信息的编码表示

文章目录 1 前言2 西文字符的编码表示——ASCII 码3 中文字符的编码表示3.1 区位码3.2 国标码3.3 机内码3.4 国标码与机内码 5 机外码 1 前言 在计算机的内部&#xff0c;所有数据都是通过二进制编码而保存的&#xff0c;计算机只能识别二进制。因此我们存储任何信息到计算机中…

QT_Creator格式化工具使用

QT_Creator代码格式化工具使用 为了确保代码格式整齐统一&#xff0c;使用代码格式化工具会将写的代码自动格式化以保证格式统一 Astyle&#xff1a; A Free, Fast, and Small Automatic Formatter for C, C, C/CLI, Objective-C, C#, and Java Source Code 一、C和C代码格式化…

C语言实现毕达哥拉斯树 你需要知道的一切!

分形几何学是一门研究不规则几何形态的几何学学科。它涉及数学上基于递归的反馈系统&#xff0c;通过不断迭代的方程式生成分形。尽管分形是数学构造&#xff0c;但它们也存在于自然界中&#xff0c;并因此在艺术作品中得到应用。 计算机的出现为推动分形几何学的发展起到了重…

自己架设的传奇会卡顿、掉线是什么原因?传奇卡顿怎么解决?

自己架设的传奇会卡顿、掉线是什么原因&#xff1f; 【M2相关设置】【怪物刷新】【机器人脚本】【个人定时器】【GOTO的使用】【NPC】【服务器配置】 因为平时接触传奇的用户比较多&#xff0c;所以也会遇到架设的传奇出现卡顿、掉线的情况&#xff0c;这究竟是为什么呢&#x…

迭代器模式:简化集合元素遍历的设计模式

迭代器模式是一种行为型设计模式&#xff0c;它提供了一种遍历集合元素的统一接口&#xff0c;使得我们可以在不暴露集合内部结构的情况下访问集合中的元素。迭代器模式可以简化集合的遍历操作&#xff0c;提高代码的可读性和可维护性。本文将详细介绍迭代器模式的原理、结构和…

java IO流(一) IO流概述 字节流

File类只能操作文件&#xff0c;但是不能操作文件中的内容&#xff0c;IO流则可以对文件或者网络中的数据进行读、写操作。 IO流分为两大派系&#xff1a; 1.字节流&#xff1a;字节流又分为字节输入流、字节输出流 2.字符流&#xff1a;字符流由分为字符输入流、字符输出流 字…

简化生活之让AI以指定格式输出

原文合集地址如下&#xff0c;有需要的朋友可以关注 本文地址 合集地址 今天京东也宣布即将发布了自己的大模型&#xff0c;那么使用AI大模型进行工作或者生活将是必不可少的步骤。 建立命令 AI大模型是一种生成式聊天对话模型&#xff0c;我们可以通过预先定义命令的方式…

【C语言】求a的连续和

问题描述 输入两个整数a和n , a的范围是[0,9]&#xff0c;n的范围是[1,8]&#xff0c;求数列之和S aaaaaa… aaa…a ( n个a )。如a为2、n为8时输出的是222222…22222222的和。 输入格式: 输入在一行中给出两个整数&#xff0c;先后表示a和n。 输出格式: 在一行中输出要求的数…

不会吧,都2023年了,还有人不知道jmeter和locust的区别?

在做性能测试时&#xff0c;通常都会借助一些压测工具来模拟大量的并发用户。目前业界压测工具种类繁多&#xff0c;比如Loadrunner、Jmeter、Locust、Ngrinder、Apache ab、Wrk、Webbench等&#xff0c;其中开源的要以java的jmeter和pythonlocust首当其冲&#xff0c;那么今天…

软件进行压力测试的主要目的

软件进行压力测试是指通过模拟大量用户访问和负载压力&#xff0c;在正常和峰值使用情况下对软件系统进行测试的过程。软件进行压力测试的主要目的是确保软件在实际应用中能够稳定、可靠地运行&#xff0c;满足用户的需求。 首先&#xff0c;软件进行压力测试的主要目的是评估系…

计算机系统结构与操作系统实验三(4-1)-获取物理容量

&#x1f4cd;实验要求 获得物理内存容量&#xff0c;代码中共有3种获得物理内存容量方式&#xff0c;程序流程是第1种方式如果失败则采用第2种方式&#xff0c;第2种如果失败则采用第3种&#xff0c;想方法验证最终是采用了哪种方式&#xff1f;给出分析过程 &#x1f4cd;实…

Vue封装的过渡与动画

vscode中迅速创建Vue快捷键输入vue回车键即可 动画效果 如果在<transition name"hello"></transition>标签添加name属性&#xff0c;那么css属性名生效就得这样写.hello-enter-active和.hello-leave-active&#xff0c;没有name属性就直接.v-enter-acti…

Mac搭建安卓模拟器(支持M1/M2)

引言 最近在研究Vue打包成app&#xff0c;给我的报价器搞一个移动端&#xff0c;奈何没有安卓手机用于测试。所以想到安装一个安卓模拟器。 看了下目前主流的安卓模拟器基本都不支持Mac版本。网易的mumu目前来看还是只支持Intel芯。 1. 简单版&#xff08;仅M系&#xff09;…

3. CSS三角

网页中常见的一些三角形, 使用CSS直接画出来就可以, 不必做成图片或者字体图标。 CSS三角做法代码: div {width: 0;height: 0;/* 兼顾兼容性 line-height: 0;font-size: 0; */border: 50px solid transparent;border-left-color: pink; }

【Linux】初步理解操作系统和进程概念

一.认识操作系统 操作系统是一款纯正的 “搞管理” 的文件。 那操作系统为什么要管理文件&#xff1f; “管理” 又是什么&#xff1f; 它是怎么管理的&#xff1f; 为什么&#xff1f; 1.操作系统帮助用户&#xff0c;管理好底层的软硬件资源&#xff1b; 2.为了给用户提供一个…

搞清楚@RequestBody和@RequestParam的异同,让你的面试不再被问倒!

大家好&#xff0c;我是小米。今天我要给大家分享一个常见的面试题&#xff1a;“RequestBody和RequestParam之间有什么区别&#xff1f;”这个问题在Java Web开发中非常常见&#xff0c;对于初学者来说可能会有些混淆。那么&#xff0c;让我们一起来揭开这个谜团&#xff0c;深…

浅谈变配电监控系统在某火车站中的应用

安科瑞 华楠 摘要&#xff1a;现代变配电监控系统是利用计算机控制技术、通信技术和网络技术等&#xff0c;对智能变配电设备进行数字化信息采集、处理和传输&#xff0c;从而实现对变配电系统高、低压电气设备的远程监控管理&#xff0c;达到配电室的少人或无人值守的目的&am…