【随想】每日两题Day.5 (实则一题)
题目:LeetCode 707.设计链表
你可以选择使用单链表或者双链表,设计并实现自己的链表。
单链表中的节点应该具备两个属性:val
和 next
。val
是当前节点的值,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
的节点。
示例:
输入 ["MyLinkedList", "addAtHead", "addAtTail", "addAtIndex", "get", "deleteAtIndex", "get"] [[], [1], [3], [1, 2], [1], [1], [1]] 输出 [null, null, null, null, 2, null, 3]解释 MyLinkedList myLinkedList = new MyLinkedList(); myLinkedList.addAtHead(1); myLinkedList.addAtTail(3); myLinkedList.addAtIndex(1, 2); // 链表变为 1->2->3 myLinkedList.get(1); // 返回 2 myLinkedList.deleteAtIndex(1); // 现在,链表变为 1->3 myLinkedList.get(1); // 返回 3
初始代码:
class MyLinkedList {public MyLinkedList() {}public int get(int index) {}public void addAtHead(int val) {}public void addAtTail(int val) {}public void addAtIndex(int index, int val) {}public void deleteAtIndex(int index) {}
}/*** Your MyLinkedList object will be instantiated and called as such:* MyLinkedList obj = new MyLinkedList();* int param_1 = obj.get(index);* obj.addAtHead(val);* obj.addAtTail(val);* obj.addAtIndex(index,val);* obj.deleteAtIndex(index);*/
代码:
class ListNode {int val;ListNode next;ListNode(){}ListNode(int val) {this.val = val;}
}class MyLinkedList {int size = 0;ListNode head;public MyLinkedList() {size = 0;head = new ListNode(-1);}public int get(int index) {//下标无效if(index<0||index>=size) return -1;ListNode cur = head.next;while(index > 0) {cur = cur.next;index--;}return cur.val;}public void addAtHead(int val) {ListNode node = new ListNode(val);node.next = head.next;head.next = node;size++;}public void addAtTail(int val) {ListNode node = new ListNode(val);ListNode cur = head;while(cur.next != null) {cur = cur.next;}cur.next = node;size++;}public void addAtIndex(int index, int val) {ListNode node = new ListNode(val);//下标无效if(index<0||index>size) return;if(index == size) {addAtTail(val);return;}ListNode cur = head.next;while(index > 1) {cur = cur.next;index--;}if(index == 0) {node.next = head.next;head.next = node;}else {node.next = cur.next;cur.next = node;}size++;}public void deleteAtIndex(int index) {//下标无效if(index<0||index>=size) return;ListNode cur = head.next;while(index > 1) {cur = cur.next;index--;}if(index == 0) {head.next = head.next.next;}else {cur.next = cur.next.next;}size--;}
}/*** Your MyLinkedList object will be instantiated and called as such:* MyLinkedList obj = new MyLinkedList();* int param_1 = obj.get(index);* obj.addAtHead(val);* obj.addAtTail(val);* obj.addAtIndex(index,val);* obj.deleteAtIndex(index);*/
思考:
这个题又单独定义了ListNode类是我没想到的,然后就是利用带头结点做的整个功能。
在MyLinkedList类中定义了size和head。功能不复杂,还是注意空指针边界。
相关文章:
【随想】每日两题Day.5 (实则一题)
题目:LeetCode 707.设计链表 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还…...
【LeetCode刷题笔记】动态规划 — 70.爬楼梯
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 更多算法知识专栏:算法分析🔥 给大家跳段街舞感谢…...
2024腾讯校招后端面试真题汇总及其解答(三)
21【算法题】反转链表 题目: 给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head = [1,2] 输出:[2,1]示例 3: 输入:head = [] 输出:[]提示: 链表中节点的数目范围是 [0, 5…...
mysql的分组group by
文章目录 一、介绍1、分组查询的内容2、多字段分组3、将查询内容连接group_concat4、有条件的分组查询having 一、介绍 将某个字段的相同值分为一组,分组查询的结果强调的是一个整体,每组内容只显示一行分组查询的内容一般要查询分组字段,因…...
Swoole 介绍以及 编译安装
Swoole是什么? Swoole是一个PHP语言的开源异步网络通信引擎,它是以PHP语言为基础,以C语言编写的扩展。它可以让PHP语言程序拥有异步网络通信能力,并且能够支持高并发、高性能的TCP/UDP/Unix Socket/HTTP服务器。 Swoole的优势 …...
Ubuntu终端指令
目录 目录 一、基本指令 1.命令行提示符 2.切换用户 3.修改密码 4.查看当前目录下的文件 5.修改文件权限---chmod 6.cd 切换路径 7.touch 8.cat 9.echo 10.mkdir 11. rm/rmdir 二、在线下载软件 1.更新软件源 2.更新软件列表 3.下载软件 三、离线安装软件 1. …...
python给json 转实体类加注释的代码实现
1 通过 GsonFormatPlus 生成的实体类 package com.zcl;import java.util.List;public class Test{/*** org_code*/private String org_code;/*** code*/private String code;/*** name*/private NameDTO name;/*** vendorextends*/private VendorextendsDTO vendorextends;/**…...
绘制三角波与梯形波
函数 使用三角函数及反三角函数 在线编辑运行工具 JupyterLite Retro - Notebook 三角波 import numpy as np import matplotlib.pyplot as plt # 创建一个从-2π到2π(包含2π)的等差数列,步长为0.01 x = np.arange(-4*np.pi, 4*np.pi, 0.01) # 计算y值 y = np.…...
【Git】 git push 提示Not possible to fast-forward,无法提交也无法提交程序
目录 一、执行rebase操作 二、取消rebase操作 错误内容 # git push To gitlab.aipark.com:aits/data-intergration.git! [rejected] zjk-prod-20230823 -> zjk-prod-20230823 (fetch first) error: failed to push some refs to gitlab.aipark.com:aits/data-in…...
优思学院|为什么质量工程师在别人看是“救火“的呢?
为什么质量工程师在别人看是‘救火’的呢?现今的质量管理体系已经很成熟,一家公司质量部门会有IQC、IPQC、OQC负责来料、过程质量、成品质量等等,而质量工程师(QE)的工作是要确保这些活动合理和有效,不产生…...
VMware Explore | 联想与VMware扩大合作带来生成式AI和多云解决方案
*带有 VMware Cloud 的全新联想 ThinkSystem 生成式 AI 解决方案,采用 NVIDIA 加速计算和软件,提供专为实现下一代 AI 工作负载而打造的 GPU 密集型平台。 联合创新实验室为商业中端市场和企业提供即用型混合多云解决方案。 全新 Lenovo TruScale Hybr…...
8月份徒弟企业面试后反馈的软件测试面试题(含金量高请收藏)
hello,我是清风。最近很多粉丝私信我要软件测试学习和面试资料,今天来安排一下面试题。我这里从来不缺永远不缺的就是面试提。我个人有几年软件测试面试官经验先不谈,我的徒弟每个月出去面试,我会叫他们录音。面试题都会反馈给我 …...
私有云不是真正的云计算!
大数据产业创新服务媒体 ——聚焦数据 改变商业 中国云计算遇到困境,IaaS层面,阿里云、腾讯云等增长乏力;SaaS没有发展起来。反观美国,整个云计算蓬勃发展,AWS、微软云、谷歌云体量更大,增速却不低&#x…...
netperf 测试时延和吞吐
一、Netperf是一种网络性能测试工具,主要基于TCP或UDP的传输。可以测量TCP和UDP传输的吞吐量、时延、CPU 占用率等性能参数。Netperf测试结果所反映的是一个系统能够以多块的速度向另一个系统发送数据,以及另一个系统能够以多块的速度接收数据。 二、打…...
安卓预制权限添加规则
android:protectionLevel 可以在 android/frameworks/base/core/res/AndroidManifest.xml查询 signature|preinstalled 加在 这个文件里 privapp-permissions-xx.xml dangerous 加在 default-permissions/default-mega-permissions.xml normal 不需要加 不存在两个文件都加…...
D3JS简介
D3JS 什么是D3js D3.js是一个流行的JavaScript数据可视化库,它提供了一系列的API和工具,用于创建交互式的数据图表、地图等可视化效果。以下是一些D3.js的特点和用途: 数据驱动:D3.js基于数据驱动的思想,将数据和视觉…...
系统架构设计师(第二版)学习笔记----系统工程
【原文链接】系统架构设计师(第二版)学习笔记----系统工程 文章目录 一、系统工程方法1.1 系统工程方法的特点1.2 系统工程方法种类1.3 霍尔三维结构的7个阶段1.4 霍尔三维结构的7个步骤1.5 切克兰德方法的7个步骤1.6 并行工程的目标1.7 并行工程强调以下…...
java spring cloud 企业工程管理系统源码+二次开发+定制化服务
鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管…...
IMX6ULL移植篇-boot 命令的学习
一. boot 命令简介 uboot 的作用是启动 Linux系统。所以 uboot 肯定有相关的 boot(引导)命令来启动 Linux。 常用的与 boot 有关的命令有:bootz、bootm 和 boot。 本文主要学习 boot 命令的使用。 本文接上一篇文章,如下: IMX6ULL移植篇…...
Python字典和集合操作指南:创建、获取值、修改和删除键值对,复制和遍历方法全解析
文章目录 字典(dict)创建字典获取字典中的值修改字典删除字典中的键值对复制字典字典推导式遍历字典使用keys()方法使用values()方法使用items()方法 小结 集合(set)创建集合集合操作集合运算小结 python精品专栏推荐python基础知…...
unity 接收拼接数据进行纹理替换且保存相机纹理到rtsp server(一)
1 rtsp 协议后编码解码 rtsp协议的问题就是,拼接完成后,还需要编码,而unity里面再需要解码,需要的过程多了一步编码再解码,大大加重了 2 rtsp 协议后轻量编码 rtsp协议使用mjpeg进行图片传输。why?这样做…...
视频讲解|3014 含分布式电源的配电网优化重构
目录 1 主要内容 2 讲解视频链接 3 部分程序 1 主要内容 该视频为程序目录中编号1034的讲解内容,该程序的链接为配电网优化重构matlab智能算法,本次重点讲解了基本环矩阵原理以及代码两步实现过程、如何利用基本环向量去创造可行解、粒子群优化过程、…...
分布式、锁、延时任务
1. redission redission 原理 Redis分布式锁-这一篇全了解(Redission实现分布式锁完美方案) 2.zk 2.1 指令 ls / / 下有哪些子节点 get /zookeeper 查看某个子节点内容 create /aa “test” delete /aa set /aa “test01” 2.2 创建节点 模式 默认创建永久 create -e …...
Mojo 语言官网
Mojo面向 AI 开发者的新型编程语言,无缝支持CPU、GPU,兼容Python,跟Python类似的语法,但是比Python快68000倍。目前Mojo仅支持Ubuntu,暂不支持Windows和Mac,可以在Mojo Playground先体验一下。 Mojo 语言…...
JTS:02 使用WKB操作数据
版本 org.locationtech.jts:jts-core:1.19.0 链接: github 代码 import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.GeometryFactory; import org.locationtech.jts.geom.Point; import org.loca…...
stonedb部署实践
1.使用docker部署,会有一些问题,启动失败: xiuchenggongxiuchengdeMacBook-Pro stonedb % docker logs 27a92a0510fd _main[ -f …...
wsl使用apt install net-tools报错
前两天折腾了几个小时把wsl安装好了,后面准备安装ifconfig命令的时候发现网络有问题,总结处理过程如下: 1.修改/etc/wsl.conf文件,修改后wsl.conf文件内容如下: [boot] systemdtrue [network] generateResolvConffals…...
python 使用requests爬取百度图片并显示
爬取百度图片并显示 引言一、图片显示二、代码详解2.1 得到网页内容2.2 提取图片url2.3 图片显示 三、完整代码 引言 爬虫(Spider),又称网络爬虫(Web Crawler),是一种自动化程序,可以自动地浏览…...
DataSecurity Plus:守护企业数据安全的坚实堡垒
在当今数字化时代,数据被认为是企业最宝贵的资产之一。然而,企业面临着巨大的数据安全挑战,其中之一就是数据泄露。数据泄露可能导致敏感信息的丧失、法律责任的追究以及声誉受损。因此,保护企业数据安全已经成为每个组织的首要任…...
《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制
title: 《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制Windows,macOS,Linux设备 tags: 个人成长 categories:树莓派不吃灰 前段时间, 有一台老式MacBook Pro被我改造成了影视资源解码主机, 《树莓派4B家庭服务器搭…...
做网站推广见客户的话术/百度快照查询
一、内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。 1、成员内…...
godaddy网站建设怎么样/百度大全下载
2 处理单个工作表 尽管 Excel 工作簿可以包含多个工作表,有些时候你也只是需要一个工作表中的数据。此外,只要你知道如何分析一个工作表,就可以很容易地扩展到分析多个工作表。 1 读写Excel文件 基础Python和xlrd、xlwt模块 要使用基础 …...
阿里云共享云主机做网站/百度信息流投放
1.请自我介绍一下? 答:我叫 xxx,来自北京,20xx 年毕业于 xx 大学计算机 xx 系,毕业后在武汉从事了 x 年的 php 开发工作,公司是一个外包公司,主要做微信开发,公众号推广,商城,论坛的开发2.你在公司负责那些项目? 答:由于我们公司是一个外包公司,不可能只做一个项目,公司的项…...
商城网站建设net2006/网站seo软件
Spring Cloud教程(非常详细) SpringCloud入门教程(全集) Spring Cloud 学习笔记(1 / 3) 狂神说SpringCloud学习笔记 史上最简单的 SpringCloud 教程 | 终章 史上最简单的 SpringCloud 教程 | 第一篇&a…...
网站网络投票建设模板/关键词挖掘站长工具
盗链就是在用户向网站a请求网站资源时,网站a将网站资源的路径填写为b网站资源的地址,用户将直接看到网站a上显示着网站b的资源,从而造成盗链。 要防止盗链,就要用到处理管道中的技术 在相应的模块类中: void app_Begin…...
路由器怎么做网站/seo优化常识
本文介绍使用Spire.Cloud.SDK for Java 提供的BackgroundApi接口来操作Word文档背景的方法,可设置背景,包括设置颜色背景setBackgroundColor()、图片背景setBackgroundImage(),删除背景deleteBackground()和获取背景颜色getBackgroundColor()…...