SouthLeetCode-打卡24年01月第3周

SouthLeetCode-打卡24年01月第3周

// Date : 2024/01/15 ~ 2024/01/21

013.二分查找

(1) 题目描述

013#LeetCode.27.#北岸计划2024/01/15

// 略

(2) 题解代码

// 重做

014.移除元素

(1) 题目描述

014#LeetCode.160.#北岸计划2024/01/16

(2) 题解代码

Version1.0

class Solution {public int removeElement(int[] nums, int val) {int length = nums.length;for(int i=0 ;i<length ; i++){while(nums[length-1] == val){length--;if(length == i){return length;}}if(nums[i] == val){nums[i] = nums[length-1];length--;}}return length;}
}

015.有序数组的平方和

(1) 题目描述

015#LeetCode.977.#代码随想录0042024/01/17

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

(2) 题解代码

// 重做

016.螺旋矩阵Ⅱ

(1) 题目描述

016#LeetCode.59.#北岸计划2024/01/17

给你一个正整数 n ,生成一个包含 1n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix

(2) 题解代码

class Solution {public int[][] generateMatrix(int n) {int[][] matrix = new int[n][n];int sup = 0;int sub = n-1;int left = 0;int right = n-1;int count = 1;while(sup <= sub && left <= right){for(int i=left ; i<=right ; i++){matrix[sup][i] = count;count++;}sup++;for(int i=sup ; i<=sub ; i++){matrix[i][right] = count;count++;}right--;for(int i=right ; i>=left ; i--){matrix[sub][i] = count;count++;}sub--;for(int i=sub ; i>=sup ; i--){matrix[i][left] = count;count++;}left++;}return matrix;}
}

017.移除链表元素

(1) 题目描述

017#LeetCode.203.#北岸计划2024/01/17

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点

(2) 题解代码

class Solution {public ListNode removeElements(ListNode head, int val) {ListNode dummy = new ListNode();dummy.next = head;ListNode prev = dummy;ListNode curr = head;while(curr != null){if(curr.val == val){prev.next = curr.next;}else{prev = prev.next;}curr = curr.next;}return dummy.next;}
}

018.长度最小的子数组

(1) 题目描述

018#LeetCode.209.#北岸计划2024/01/18

给定一个含有 n 个正整数的数组和一个正整数 target

找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [nums_l, nums_l+1, ..., nums_r-1, nums_r] ,并返回其长度**。**

如果不存在符合条件的子数组,返回 0

(2) 题解代码

// 重做

019.设计链表-单链表

(1) 题目描述

019#LeetCode.707.#北岸计划2024/01/19

你可以选择使用单链表或者双链表,设计并实现自己的链表。

单链表中的节点应该具备两个属性:valnextval 是当前节点的值,next 是指向下一个节点的指针/引用。

如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。

实现 MyLinkedList 类:

  • MyLinkedList() 初始化 MyLinkedList 对象。
  • int get(int index) 获取链表中下标为 index 的节点的值。如果下标无效,则返回 -1
  • void addAtHead(int val) 将一个值为 val 的节点插入到链表中第一个元素之前。在插入完成后,新节点会成为链表的第一个节点。
  • void addAtTail(int val) 将一个值为 val 的节点追加到链表中作为链表的最后一个元素。
  • void addAtIndex(int index, int val) 将一个值为 val 的节点插入到链表中下标为 index 的节点之前。如果 index 等于链表的长度,那么该节点会被追加到链表的末尾。如果 index 比长度更大,该节点将 不会插入 到链表中。
  • void deleteAtIndex(int index) 如果下标有效,则删除链表中下标为 index 的节点。

(2) 题解代码

public class MySingleLinkedList  {ListNode head;int length;public MySingleLinkedList () {head = new ListNode(-Integer.MAX_VALUE);length = 0;}public int get(int index) {if(length == 0 || index > length-1 || index < 0){//索引有效性检查return -1;}else{ListNode cur = head;for(int i=0 ; i<index ; i++){cur = cur.next;}return cur.val;}}public void addAtHead(int val) {if(length == 0){head.val = val;}else{int hVal = head.val;ListNode node = new ListNode(hVal);head.val = val;node.next = head.next;head.next = node;}length++;}public void addAtTail(int val) {if(length == 0){head.val = val;}else{ListNode node = new ListNode(val);ListNode cur = head;while(cur.next != null){cur = cur.next;}cur.next = node;}length++;}public void addAtIndex(int index, int val) {if(length == 0 && index == length){head.val = val;length++;}else if(index <= length){if(index == 0){addAtHead(val);length--;}else if(index == length){addAtTail(val);length--;}else if(index < length){ListNode node = new ListNode(val);ListNode cur = head;for(int i=0 ; i<index-1 ; i++){cur = cur.next;}node.next = cur.next;cur.next = node;}length++;}else if(index > length){}}public void deleteAtIndex(int index) {ListNode cur = head;if(index == 0 || index == length-1){if(index == 0) head = head.next;if(index == length-1){for(int i=0 ; i<index-1 ; i++){cur = cur.next;}cur.next = null;}}else if(index > 0 && index < length){for(int i=0 ; i<index-1 ; i++){cur = cur.next;}cur.next = cur.next.next;}else{// index < 0 || index > length-1length++;}length--;}public void print(){ListNode cur = head;while(cur != null){if(cur != head){System.out.print("->");}System.out.print("【"+ cur.val +"】");cur = cur.next;}System.out.println();}public void manualCreatList(){// 手动建表ListNode node1 = new ListNode(2);ListNode node2 = new ListNode(4);ListNode node3 = new ListNode(6);head.val = 0;head.next = node1;node1.next = node2;node2.next = node3;length = 4;}
}

020.搜索插入位置

(1) 题目描述

020#LeetCode.35.#北岸计划2024/01/20

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

请必须使用时间复杂度为 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;}
}

021.设计链表-单链表

(1) 题目描述

021#LeetCode.707.#北岸计划2024/01/21

// 略

(2) 题解代码

// 优化整理

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

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

相关文章

SpringMVC RESTful风格

Restful是一种软件架构风格、设计风格&#xff0c;而不是标准&#xff0c;只是提供了一组设计原则和约束条件。主要用于客户端和服务器交互类的软件&#xff0c;基于这个风格设计的软件可以更简洁&#xff0c;更有层次&#xff0c;更易于实现缓存机制等。 Restful风格的请求是…

python-自动化篇-运维-语音识别

文章目录 理论文本转换为语音使用 pyttsx使用 SAPI使用 SpeechLib 语音转换为文本 代码和效果01使用pyttsx实现文本_语音02使用SAPI实现文本_语音03使用SpeechLib实现文本_语音04使用PocketSphinx实现语音转换文本 理论 语音识别技术&#xff0c;也被称为自动语音识别&#xf…

C++ STL库之Vector简介及例题(二)

C STL库之Vector简介及例题&#xff08;二&#xff09; 继“C STL库之Vector简介及例题&#xff08;一&#xff09;【点击查看】”之后&#xff0c;这篇文章我们继续上一次的介绍&#xff0c;继续对vector的一些算法的函数进行简析及例题分析。 元素操作 删除第2个元素&…

Hive之set参数大全-22(完)

指定是否启用矢量化处理复杂数据类型 在 Hive 中&#xff0c;hive.vectorized.complex.types.enabled 是一个配置参数&#xff0c;用于指定是否启用矢量化处理复杂数据类型。以下是有关该参数的一些解释&#xff1a; 用途&#xff1a; 该参数用于控制是否启用 Hive 的矢量化执…

安卓逆向学习之ADB的配置和使用及刷机root

ADB的配置和使用 ADB即Android Debug Bridge&#xff0c;安卓调试桥&#xff0c;是谷歌为安卓开发者提供的开发工具之一&#xff0c;可以让你的电脑以指令窗口的方式控制手机。可以在安卓开发者网页中的 SDK 平台工具页面下直接下载对应系统的 adb 配置文件&#xff0c;大小只…

矩阵键盘的使用

在定义局部变量时&#xff0c;一定要给该变量赋初值。在这个程序中&#xff0c;给按键按下的返回值变量 KeyNum 赋值为 20 。 矩阵键盘线行扫描法的学习链接&#xff1a;https://www.bilibili.com/video/BV1dv411z7Gd/?spm_id_from333.999.0.0&vd_sourceb91967c499b23106…

SpringBoot项目监听reids中过期的key

使用redission客户端操作redis maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><version>2.2.8.RELEASE</version> </dependency> <depe…

Vue3的v-model说明和使用方法

Vue 3 的 v-model 是一个语法糖&#xff0c;它为表单输入和应用状态之间创建了双向绑定。这样&#xff0c;当用户在表单中输入时&#xff0c;数据会自动更新&#xff0c;反之亦然。 说明 在 Vue 3 中&#xff0c;v-model 实际上是基于 value 属性和 input 事件实现的。这意味…

Python 因果推断(上)

引言 原文&#xff1a;causal-methods.github.io/Book/Introduction.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 作者&#xff1a;Vitor Kamada 电子邮件&#xff1a;econometrics.methodsgmail.com 最后更新日期&#xff1a;2020 年 8 月 15 日 这本书是使…

jupyter出现问题ModuleNotFoundError: No module named ‘exceptiongroup‘

今天使用pyg的jupyter环境发现这个环境没法用, 所以只能把这个kernel给重删了然后再装&#xff0c;操作记录如下 查看kernel jupyter kernelspec list注意不是jupyter kernel --list 需要加关键字spec, 删除kernel jupyter kernelspec remove pyg当重新安装这个kernel时可能…

阿里云云上微服务 EDAS接入使用以及注意事项

阿里云分布式应用服务&#xff08;EDAS, Elastic Distributed Application Service&#xff09;是阿里云提供的一款支持微服务架构的PaaS平台&#xff0c;它帮助用户在云端构建、部署和管理分布式应用。接入EDAS并使用其进行云上微服务管理主要包括以下步骤及注意事项&#xff…

Qt容器类

一、概述 用来存储其他的类或者数据。存储基础的int&#xff0c;float类型&#xff0c;也可以是QString&#xff0c;QDate类型。Qt的容器类比STL(标准模板库)中的容器类更轻巧、安全和易于使用。 Qt的容器类分为顺序容器&#xff08;sequential containers&#xff09;和关联容…

Redis -- 常用数据结构,认识数据类型和编码方式

"人生就像骑自行车&#xff0c;要保持平衡&#xff0c;就必须保持前进。" — 爱因斯坦 说到数据结构&#xff0c;或许就能想到哈希表&#xff0c;列表集合等数据结构。对于redis来说对应的key的value的形式也可以是这些数据结构&#xff0c;如下&#xff1a; 针对上面…

深度学习:机器学习的革命性突破

深度学习&#xff08;Deep Learning&#xff09;是机器学习领域中的一个新的研究方向&#xff0c;主要是通过建立类似于人脑的神经网络来模仿人类的感知、记忆、理解和生成等能力。深度学习的核心是神经网络&#xff0c;它能够从大量的数据中自动提取有用的特征&#xff0c;并基…

导出Mysql数据库表名和字段并合并成一个word

参考链接&#xff1a; 导出MySQL数据库所有库和字段注释及相关信息为word文档——工具类 java - Apache POI - How to copy tables from one docx to another docx - Stack Overflow 领导让我研究下一个低代码平台的代码&#xff0c;我就想着做一个把数据库字段直接导出来的…

【论文阅读】Long-Tailed Recognition via Weight Balancing(CVPR2022)附MaxNorm的代码

目录 论文使用方法weight decayMaxNorm 如果使用原来的代码报错的可以看下面这个 论文 问题&#xff1a;真实世界中普遍存在长尾识别问题&#xff0c;朴素训练产生的模型在更高准确率方面偏向于普通类&#xff0c;导致稀有的类别准确率偏低。 key:解决LTR的关键是平衡各方面&a…

Android 12 系统开机动画

一、查找Android系统提供的开机动画 在Android系统源码目录下输入 find ./ -name "bootanimation.zip" 如图所示 所输出的路劲即为bootanimation.zip所在路径&#xff0c;每个系统都不一样&#xff0c;建议用命令查找 二、复制到对应目录下 android12\out\target\…

AIGC,ChatGPT4 实际需求效办公自动化函数应用

用实际需求来给大家演示一下ChatGPT如何助力办应用。 首先我们来提取年份值 我们将公式复制到表格即可。 接下来进行向下填充。 就得到了所有年份&#xff0c; 接下来我们完成第二个需求&#xff0c;按年份统计销售额。 Prompt&#xff1a;有一个表格C列是年份&#xff0c;D列…

【干货】【常用电子元器件介绍】【电容】(二)--电容器的主要参数、测量、选择与应用

声明&#xff1a;本人水平有限&#xff0c;博客可能存在部分错误的地方&#xff0c;请广大读者谅解并向本人反馈错误。 一、 电容器的主要参数 1.1 耐压 耐压(Voltage Rating)是指电容器在电路中长期有效地工作而不被击穿所能承受的最大直流电压。对于结构、介质、容量相同的…

【计算机网络】网络的网络

网络的网络 客户 customer 接入ISP提供商 provider 全球承载ISP多个ISP的层级结构 第一层ISP &#xff08;tier-1 ISP &#xff09; 位于顶部 区域ISP &#xff08;reginal ISP&#xff09;Level 3通信 &#xff0c;AT&T&#xff0c;Sprint &#xff0c;NTT存在点&#x…