当前位置: 首页 > news >正文

SouthLeetCode-打卡24年01月第4周

SouthLeetCode-打卡24年01月第4周

// Date : 2024/01/22 ~ 2024/01/28

022.设计链表 - 双链表

(1) 题目描述

022#LeetCode.707.#北岸计划2024/01/22

(2) 题解代码

import java.util.List;class ListNode {int val;ListNode prev;ListNode next;ListNode(){this.val = 0;this.prev = null;this.next = null;}ListNode(int val){this.val = val;this.prev = null;this.next = null;}ListNode(int val, ListNode prev, ListNode next){this.val = val;this.prev = prev;this.next = next;}}public class MyLinkedList   {ListNode head;int length;public MyLinkedList  (){head = null;length = 0;}public int get(int index) {boolean lenValid = length > 0;boolean idxValid = index >= 0 && index < length ;int result;if(lenValid && idxValid){ListNode curr = head;for(int i=0 ; i<index ; i++){curr = curr.next;}result = curr.val;}else{result = -1;}return result;}public void addAtHead(int val) {if(length == 0){head = new ListNode(val);}else {int hVal = head.val;ListNode node = new ListNode(hVal);head.val = val;if(length > 1){node.next = head.next;head.next.prev = node;}head.next = node;node.prev = head;}length++;}public void addAtTail(int val) {ListNode node = new ListNode(val);if (head == null) {head = node;} else {ListNode cur = head;while (cur.next != null) {cur = cur.next;}cur.next = node;node.prev = cur;}length++;}public void addAtIndex(int index, int val) {if (index < 0 || index > length) {return; // 索引无效,不执行插入操作}if (index == 0) {addAtHead(val); // 在头部插入节点} else if (index == length) {addAtTail(val); // 在尾部插入节点} else {ListNode newNode = new ListNode(val);ListNode curr = head;int count = 0;while (count < index - 1) {curr = curr.next;count++;}newNode.prev = curr;newNode.next = curr.next;curr.next.prev = newNode;curr.next = newNode;length++;}}public void deleteAtIndex(int index) {boolean lenValid = length > 0;boolean idxValid = index >= 0 && index < length ;ListNode dummy = new ListNode();dummy.next = head;// head.prev = dummy; 不应该有这一句ListNode cur = head;ListNode pre = dummy;if(lenValid && idxValid){if(index == 0){head = head.next;}else{for(int i=0 ; i<index ; i++){cur = cur.next;pre = pre.next;}pre.next = pre.next.next;cur.prev = cur.prev.prev;}length--;}}}

023.搜索插入位置

(1) 题目描述

023#LeetCode.35.#北岸计划2024/01/23

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

(2) 题解代码

class Solution {public int searchInsert(int[] nums, int target) {int length = nums.length;int left = 0;int right = length-1;int result;while(right - left > 1){int mid = (left + right)/2;if(nums[mid] > target){right = mid;}else if(nums[mid] < target){left = mid;}else{return mid;}}boolean found = nums[left] == target || nums[right] == target;boolean internal = nums[left] < target && nums[right] > target;if(found){result = nums[left] == target ? left : right;}else{if(internal){result = right;}else{result = nums[right] < target ? right+1 : left;}}return result;}
}

024.在排序数组中查找元素的第一个和最后一个位置

(1) 题目描述

024#LeetCode.34.#北岸计划2024/01/24

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值 target,返回 [-1, -1]

你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。

(2) 题解代码

class Solution {void searchNearBy(int[] result,int[] nums,int target,int length,int pos){while(nums[pos] == target){if(--pos == -1){break;}}result[0] = ++pos;while(nums[pos] == target){if(++pos == length){break;}}result[1] = --pos;}public int[] searchRange(int[] nums, int target) {int length = nums.length;int[] result = {-1,-1};if(length == 0) return result;int left = 0;int right = length - 1;while(right - left > 1){int mid = (left + right) / 2;if(nums[mid] < target){left = mid;}else if(nums[mid] > target){right = mid;}else{searchNearBy(result,nums,target,length,mid);return result;}}boolean found = nums[left] == target || nums[right] == target;boolean internal = nums[left] < target && nums[right] > target;if(found){if(nums[left] == target){searchNearBy(result,nums,target,length,left);}else{searchNearBy(result,nums,target,length,right);}}else{// if(internal){//     result = right;// }else{//     result = nums[right] < target ? right+1 : left;// }}System.out.println(result[0]+"...."+result[1]);return result;}
}

025.x的平方根

(1) 题目描述

025#LeetCode.69.#北岸计划2024/01/25

给你一个非负整数 x ,计算并返回 x算术平方根

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

**注意:**不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5

(2) 题解代码

class Solution {public int mySqrt(int x) {if (x == 0) return 0;long left = 0;long right = x;while (left < right) {long mid = left + (right - left + 1) / 2;if (mid * mid > x) {right = mid - 1;} else {left = mid;}}return (int) left;}
}

026.删除有序数组中的重复项

(1) 题目描述

026#LeetCode.XX.#北岸计划2024/01/26

(2) 题解代码

class Solution {public int removeDuplicates(int[] nums) {if(nums == null || nums.length == 0) return 0;int left = 0;int right = 1;while(right < nums.length){if(nums[left] != nums[right]){if(right - left > 1){nums[left + 1] = nums[right];}left++;}right++;}return left + 1;}
}

027.有效的完全平方数

(1) 题目描述

027#LeetCode.367.#北岸计划2024/01/26

给你一个正整数 num 。如果 num 是一个完全平方数,则返回 true ,否则返回 false

完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。

不能使用任何内置的库函数,如 sqrt

(2) 题解代码

class Solution {int mySqrt(int x) {if (x == 0) return 0;long left = 0;long right = x;while (left < right) {long mid = left + (right - left + 1) / 2;if (mid * mid > x) {right = mid - 1;} else {left = mid;}}return (int) left;}public boolean isPerfectSquare(int num) {return mySqrt(num)*mySqrt(num) == num;}
}

028.移动零

(1) 题目描述

028#LeetCode.283.#北岸计划2024/01/27

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

(2) 题解代码

class Solution {public void moveZeroes(int[] nums) {int length = nums.length;int j = 0;for(int i=0 ; i<length ; i++) {if(nums[i]!=0) {nums[j++] = nums[i];}}for(int i=j ; i<length ; i++) {nums[i] = 0;}}
}	

029.反转链表

(1) 题目描述

029#LeetCode.206.#北岸计划2024/01/27

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

(2) 题解代码

class Solution{public ListNode reverseList(ListNode head) {if(head == null || head.next == null){return head;}ListNode pre = new ListNode();ListNode cur = new ListNode();ListNode post = new ListNode();pre = head;cur = head.next;post = cur.next;if(cur.next == null){cur.next = pre;pre.next = null;}else{boolean flag = true;while(post != null){if(flag){pre.next = null;flag = false;}cur.next = pre;pre = cur;cur = post;post = post.next;}cur.next = pre;}return cur;}
}

030.两两交换链表中的节点

(1) 题目描述

030#LeetCode.24.#北岸计划2024/01/28

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。

你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

(2) 题解代码

class Solution {public ListNode swapPairs(ListNode head) {ListNode curr = head;List<Integer> list = new ArrayList<>();if(head == null) return null;while(curr != null){list.add(curr.val);curr = curr.next;}int length = list.size();int idx = 0;while(idx < length-1){int temp = list.get(idx);list.set(idx,list.get(idx+1));list.set(idx+1,temp);idx += 2;}ListNode newHead = new ListNode(list.get(0));curr = newHead;for(int i = 1; i < length; i++) {curr.next = new ListNode(list.get(i));curr = curr.next;}return newHead;}
}

相关文章:

SouthLeetCode-打卡24年01月第4周

SouthLeetCode-打卡24年01月第4周 // Date : 2024/01/22 ~ 2024/01/28 022.设计链表 - 双链表 (1) 题目描述 022#LeetCode.707.#北岸计划2024/01/22 (2) 题解代码 import java.util.List;class ListNode {int val;ListNode prev;ListNode next;ListNode(){this.val 0;th…...

Linux——磁盘和文件系统(一)

Linux——磁盘和文件系统 磁盘机械式磁盘固态硬盘 机械式磁盘结构磁盘&#xff0c;磁道&#xff0c;扇区柱面 文件系统的初始化划卷&#xff08;划盘&#xff09; 挂载C盘放了什么东西Boot Block&#xff08;启动模块&#xff09; 0号组放了什么东西Super Block&#xff08;超级…...

EasyCVR视频智能监管系统方案设计与应用

随着科技的发展&#xff0c;视频监控平台在各个领域的应用越来越广泛。然而&#xff0c;当前的视频监控平台仍存在一些问题&#xff0c;如视频质量不高、监控范围有限、智能化程度不够等。这些问题不仅影响了监控效果&#xff0c;也制约了视频监控平台的发展。 为了解决这些问…...

Ubuntu搭建国标平台wvp-GB28181-pro

目录 简介安装和编译1.查看操作系统信息2.安装最新版的nodejs3.安装java环境4.安装mysql5.安装redis6.安装编译器7.安装cmake8.安装依赖库9.编译ZLMediaKit9.1.编译结果说明 10.编译wvp-GB28181-pro10.1.编译结果说明 配置1.WVP-PRO配置文件1.1.Mysql数据库配置1.2.REDIS数据库…...

LC 2808. 使循环数组所有元素相等的最少秒数

2808. 使循环数组所有元素相等的最少秒数 难度: 中等 题目大意&#xff1a; 给你一个下标从 0 开始长度为 n 的数组 nums 。 每一秒&#xff0c;你可以对数组执行以下操作&#xff1a; 对于范围在 [0, n - 1] 内的每一个下标 i &#xff0c;将 nums[i] 替换成 nums[i] &…...

Qt|大小端数据转换

后面打算写Qt关于网络编程的博客&#xff0c;网络编程就绕不开字节流数据传输&#xff0c;字节流数据的传输一般是根据协议来定义对应的报文该如何组包&#xff0c;那这就必然牵扯到了大端字节序和小端字节序的问题了。不清楚的大小端的可以看一下相关资料&#xff1a;大小端模…...

禅道添加自定义字段

1&#xff0c;数据库表 zt_story 添加自定义字段 bakDate1&#xff0c;bakDate2&#xff0c;bakDate3&#xff0c;bakDate4 2&#xff0c;在 /opt/lampp/htdocs/zentaopms/extension/custom/story/ext/config 中添加bakDate.php文件 <?php $config->story->datatab…...

蓝桥杯2024/1/26笔记-----基于PCF8591的电压采集装置

功能实现要求&#xff1a; 每次建好工程文件夹&#xff0c;里边包含User&#xff08;放工程文件&#xff0c;mian.c&#xff0c;可以在这里写如同我这个文章的文本文档&#xff09;、Driver&#xff08;存放底层文件如Led.c&#xff0c;Led.h等&#xff09; 新建的工程先搭建框…...

【一】esp32芯片开发板环境搭建

1、esp32的源码在github上的地址 不同的芯片支持的源码版本不一样&#xff0c;需要根据自己的实际的esp32开发板的芯片下载不用版本的代码 esp32支持多种开发方式&#xff0c;如arduino&#xff0c;ESP-IDF等。官方推荐使用idf开发&#xff0c;ESP-IDF 是乐鑫官方推出的物联网开…...

PyTorch2ONNX-分类模型:速度比较(固定维度、动态维度)、精度比较

图像分类模型部署: PyTorch -> ONNX 1. 模型部署介绍 1.1 人工智能开发部署全流程 #mermaid-svg-bAJun9u4XeSykIbg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bAJun9u4XeSykIbg .error-icon{fill:#552222;}…...

Docker命令快车道:一票通往高效开发之旅

欢迎登上 Docker 命令快车&#xff01;在这趟旅程中&#xff0c;你不仅会学会如何驾驭 Docker 这辆神奇的车&#xff0c;还会发现如何让你的开发旅程变得更加轻松愉快。现在&#xff0c;请系好安全带&#xff0c;我们即将出发&#xff01; Docker 是什么 Docker 就像是一辆超…...

IP类接口大全,含免费次数

IP查询 IP归属地-IPv4高精版&#xff1a;根据IP地址查询归属地信息&#xff0c;支持到中国地区&#xff08;不含港台地区&#xff09;街道级别&#xff0c;包含国家、省、市、区县、详细地址和运营商等信息。IP归属地-IPv4区县级&#xff1a;根据IP地址查询归属地信息&#xf…...

LLMs 的记忆和信息检索服务器 Motorhead

LLMs 的记忆和信息检索服务器 Motorhead 1. 为什么使用 Motorhead&#xff1f;2. 通过 Docker 启动 Motorhead3. Github 地址4. python 使用示例地址 1. 为什么使用 Motorhead&#xff1f; 使用 LLMs构建聊天应用程序时&#xff0c;每次都必须构建记忆处理。Motorhead是协助该…...

vue3项目中让echarts适应div的大小变化,跟随div的大小改变图表大小

目录如下 我的项目环境如下利用element-resize-detector插件监听元素大小变化element-resize-detector插件的用法完整代码如下&#xff1a;结果如下 在做项目的时候&#xff0c;经常会使用到echarts&#xff0c;特别是在做一些大屏项目的时候。有时候我们是需要根据div的大小改…...

springboot启动异常

Error creating bean with name ‘dataSource’ org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name dataSource: Unsatisfied dependency expressed through field basicProperties; nested exception is org.springframew…...

直播主播之互动率与促单

直播互动率是衡量直播间观众参与度的重要指标&#xff0c;通常指的是直播间的观众点赞、评论以及转发的数量。互动率越高&#xff0c;表明观众参与度越高&#xff0c;直播间的人气值也相应越高。 为了提升直播互动率&#xff0c;主播可以采取以下策略: 1.积极引导观众参与互动…...

Android 基础技术——Bitmap

笔者希望做一个系列&#xff0c;整理 Android 基础技术&#xff0c;本章是关于 Bitmap Bitmap 内存如何计算 占用内存 宽 * 缩放比例 * 高 * 缩放比例 * 每个像素所占字节 缩放比例 设备dpi/图片所在目录的dpi Bitmap加载优化&#xff1f;不改变图片质量的情况下怎么优化&am…...

数据结构奇妙旅程之七大排序

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …...

【JavaScript】Generator

MDN-Generator Generator对象由生成器函数返回&#xff0c;并且它符合可迭代协议和迭代器协议。 Generator-核心语法 核心语法: 定义生成器函数获取generator对象yield表达式的使用通过for of获取每一个yield的值 // 1. 通过function* 创建生成器函数 function* foo() {//…...

河南省考后天网上确认,请提前准备证件照哦

✔报名时间&#xff1a;2024年1月18号一1月24号 ✔报名确认和缴费&#xff1a;2024年1月 31号一2月4号 ✔准考证打印&#xff1a;2024年3月12号一3月17号 ✔笔试时间&#xff1a;2024年3月16日-2024年3月17日。 ✔面试时间&#xff1a;面试时间拟安排在2024年5月中旬 报名网址&…...

为Alchitry Au FPGA开发板外接JTAG接口的完整指南

1. 项目概述与核心价值如果你正在使用基于Xilinx Artix-7 FPGA的Alchitry Au或Au开发板&#xff0c;并且已经厌倦了每次调试或烧录都要依赖板载的USB-JTAG桥接芯片&#xff0c;或者你的项目已经将板载USB接口挪作他用&#xff0c;那么为你的开发板外接一个独立的JTAG调试器&…...

Windows 10/11系统下,SecureCRT 8.7.2保姆级安装与激活图文指南(含Keygen使用避坑点)

Windows平台SecureCRT 8.7.2全流程部署与安全配置指南在当今远程运维与网络管理的日常工作中&#xff0c;一款可靠的终端仿真工具如同工程师的瑞士军刀。作为行业标杆的SecureCRT&#xff0c;其8.7.2版本在Windows 10/11环境下的部署却常让新手陷入各种技术陷阱——从安装路径选…...

智能体所有权与版权:AI Agent Harness Engineering 创造的作品归谁所有?

1. 标题选项 《AI Agent创作版权迷局破解:从Harness工程原理到所有权划分的完整指南》 《智能体作品归谁?AI Agent Harness Engineering场景下的版权规则深度拆解》 《告别权属纠纷:一文搞懂AI Agent生成内容的所有权、版权与收益分配规则》 《Harness工程视角下的AI创作权:…...

毕业设计 yolov11骨折检测医疗辅助系统(源码+论文)

文章目录 0 前言1 项目运行效果2 课题背景2.1 研究背景2.2 国内外研究现状2.3 研究意义 3 设计框架&#xff08;骨折检测系统设计框架说明&#xff09;3.1. 系统架构图3.2. 技术选型3.2.1 核心组件3.2.2 辅助工具 3.3. 核心模块设计3.3.1 YOLO模型训练模块训练流程图关键伪代码…...

3分钟告别英文恐惧:Android Studio中文界面轻松切换指南

3分钟告别英文恐惧&#xff1a;Android Studio中文界面轻松切换指南 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 你是否曾经因…...

PrivacyGuard实战:基于实证差分隐私的机器学习模型隐私审计框架

1. 项目概述与核心价值在过去的几年里&#xff0c;我亲眼见证了机器学习模型从实验室走向银行、医疗、社交网络等各个敏感领域的全过程。模型性能的每一次飞跃都令人兴奋&#xff0c;但随之而来的隐私泄露事件也一次次为我们敲响警钟。一个在医疗数据上训练出的诊断模型&#x…...

3个实用场景教你轻松解锁网易云音乐NCM加密文件:ncmdumpGUI完整指南

3个实用场景教你轻松解锁网易云音乐NCM加密文件&#xff1a;ncmdumpGUI完整指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经下载了网易云音乐的…...

如何快速掌握MPC视频渲染器:面向初学者的完整教程

如何快速掌握MPC视频渲染器&#xff1a;面向初学者的完整教程 【免费下载链接】VideoRenderer Внешний видео-рендерер 项目地址: https://gitcode.com/gh_mirrors/vi/VideoRenderer 想要在Windows系统上获得影院级的视频播放体验吗&#xff1f;MPC…...

如何利用开源工具Unlock-Music解决音乐平台加密格式兼容问题

如何利用开源工具Unlock-Music解决音乐平台加密格式兼容问题 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: https://gi…...

自动加字幕软件推荐:口播视频如何批量加字幕过

口播视频加字幕&#xff0c;为什么越做越累&#xff1f;一位知识类博主连续两周日更3条口播视频&#xff0c;每条12–18分钟&#xff0c;需手动校对字幕、拆分金句切片、补气口停顿、匹配背景音乐——最后一条视频发布时&#xff0c;字幕错漏率达17%&#xff0c;平台审核未过。…...