力扣labuladong一刷day2共7题

力扣labuladong一刷day2共8题 | 26. 删除有序数组中的重复项 83. 删除排序链表中的重复元素

文章目录

      • 力扣labuladong一刷day2共8题 | 26. 删除有序数组中的重复项 83. 删除排序链表中的重复元素
      • 一、26. 删除有序数组中的重复项
      • 二、83. 删除排序链表中的重复元素
      • 三、27. 移除元素
      • 四、283. 移动零
      • 五、167. 两数之和 II - 输入有序数组
      • 六、344. 反转字符串
      • 七、5. 最长回文子串

一、26. 删除有序数组中的重复项

题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/?utm_source=LCUS&utm_medium=ip_redirect&utm_campaign=transfer2china
思路:快慢指针,因为要删除重复元素,慢指针只有在快指针与前一个元素不等时才往前走一步,收集一个唯一元素。

class Solution {public int removeDuplicates(int[] nums) {if (nums.length == 1) return 1;int slow = 0, k = 1;for (int i = 1; i < nums.length; i++) {if (nums[i] != nums[i-1]) {k++;nums[++slow] = nums[i];}}return k;}
}

二、83. 删除排序链表中的重复元素

题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-list/
思路:和上一题类似,也是快慢指针,只不过是在链表里操作。

class Solution {public ListNode deleteDuplicates(ListNode head) {if (head == null) return null;ListNode root = new ListNode(-1, head);ListNode slow = head, fast = head;while (fast != null) {if (slow.val != fast.val) {slow.next = fast;slow = slow.next;}fast = fast.next;}slow.next = null;return root.next;}
}

三、27. 移除元素

题目链接:https://leetcode.com/problems/remove-element/
思路:快慢指针,快指针元素与要删除的元素不相等就用快指针覆盖慢指针,如果相等就只需要快指针前进。

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

四、283. 移动零

题目链接:https://leetcode.cn/problems/move-zeroes/
思路:和前面的删除元素是一样的,只不过把0都删除以后再把数组后面的元素都改成0.

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

五、167. 两数之和 II - 输入有序数组

题目链接:https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/
思路:要求两数之和等于target,可以采用类似于二分查找的方法,left=0,right=nums.length-1.sum>tagert right–,sum<target left++;

class Solution {public int[] twoSum(int[] numbers, int target) {int left = 0, right = numbers.length-1;while (left < right) {int sum = numbers[left] + numbers[right];if (sum == target) {return new int[]{left+1, right+1};}else if (sum < target) {left++;}else {right--;}}return new int[]{-1, -1};}
}

六、344. 反转字符串

题目链接:https://leetcode.cn/problems/reverse-string/
思路:左右指针。

class Solution {public void reverseString(char[] s) {int left = 0, right = s.length-1;while (left < right) {char c = s[left];s[left] = s[right];s[right] = c;left++;right--;}}
}

七、5. 最长回文子串

题目链接:https://leetcode.cn/problems/longest-palindromic-substring/
思路:寻找最长的回文子串,利用回文子串的特性,应该基于任意一个点从中间向两端扩散寻找,扩散时分为奇数和偶数进行扩散。

class Solution {public String longestPalindrome(String s) {String res = "";for (int i = 0; i < s.length(); i++) {String s1 = f1(s, i, i);String s2 = f1(s, i, i+1);res = res.length() > s1.length() ? res : s1;res = res.length() > s2.length() ? res : s2;}return res;}String f1(String s, int l, int r) {while (l >= 0 && r <= s.length()-1 && s.charAt(l) == s.charAt(r)) {l--;r++;}return s.substring(l+1, r);}
}

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

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

相关文章

C++实战学习:输出类的抽象和实现详解

最近写了一些博客复习C的知识&#xff0c;但理论终究是理论&#xff0c;那多态、继承等C特性到底该在什么情况下使用&#xff1f;如何模块化地完成一个程序呢&#xff1f;还有没有什么C语法方面值得学习的知识呢&#xff1f;本节就来分析一个实际项目中的例子&#xff0c;来理解…

多测师肖sir_高级金牌讲师_jenkins搭建

jenkins操作手册 一、jenkins介绍 1、持续集成&#xff08;CI&#xff09; Continuous integration 持续集成 团队开发成员每天都有集成他们的工作&#xff0c;通过每个成员每天至少集成一次&#xff0c;也就意味着一天有可 能多次集成。在工作中我们引入持续集成&#xff0c;通…

大模型时代,开发者成长指南 | 新程序员

【编者按】GPT 系列的面世影响了全世界、各个行业&#xff0c;对于开发者们的感受则最为深切。以 ChatGPT、Github Copilot 为首&#xff0c;各类 AI 编程助手层出不穷。编程范式正在发生前所未有的变化&#xff0c;从汇编到 Java 等高级语言&#xff0c;再到今天以自然语言为特…

Python高级语法----Python多线程与多进程

文章目录 多线程多进程注意事项多线程与多进程是提高程序性能的两种常见方法。在深入代码之前,让我们先用一个简单的比喻来理解它们。 想象你在一家餐厅里工作。如果你是一个服务员,同时负责多个桌子的顾客,这就类似于“多线程”——同一个人(程序)同时进行多项任务(线程…

HttpUtils工具类

作为Java开发程序员&#xff0c;需要我们经常写一些工具类来简化开发过程&#xff0c;我们自己肯定写过或者用过HttpUtils用来发送http请求&#xff0c;但是每次手写太繁琐了&#xff0c;于是就按照标准写了一个Http工具类&#xff0c;现在分享出来。 1.HTTP请求简介 HTTP(Hy…

SSM 线上知识竞赛系统-计算机毕设 附源码 27170

SSM线上知识竞赛系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#…

虚幻引擎:如何使用 独立进程模式进行模拟

第一步:先更改配置 第二步,在启动的两个玩家里面,一个设为服务器,一个链接进去地图就可以了 1.设置服务器 2.另一个玩家链接

企业级低代码开发,科技赋能让企业具备“驾驭软件的能力”

科技作为第一生产力&#xff0c;其强大的影响力在各个领域中都有所体现。数字技术&#xff0c;作为科技领域中的一股重要力量&#xff0c;正在对传统的商业模式进行深度的变革&#xff0c;为各行业注入新的生命力。随着数字技术的不断发展和应用&#xff0c;企业数字化转型的趋…

远程运维用什么软件?可以保障更安全?

远程运维顾名思义就是通过远程的方式IT设备等运行、维护。远程运维适用场景包含因疫情居家办公&#xff0c;包含放假期间出现运维故障远程解决&#xff0c;包含项目太远需要远程操作等等。但远程运维过程存在一定风险&#xff0c;安全性无法保障&#xff0c;所以一定要选择靠谱…

RocketMQ如何安全的批量发送消息❓

优点&#xff1a; 批量发送消息可以提高rocketmq的生产者性能和吞吐量。 使用场景: 发送大量小型消息时&#xff1b;需要降低消息发送延迟时&#xff1b;需要提高生产者性能时&#xff1b; 注意事项&#xff1a; 消息列表的大小不能超过broker设置的最大消息大小;消息列表…

如何快速教你看自己电脑cpu是几核几线程

目录 一、我们日常中说的电脑多少核多少线程&#xff0c;很多人具体不知道什么意思&#xff0c;下面举例4核和4线程什么意思。二、那么4线程又是怎么回事呢&#xff1f;三、那么知道了上面的介绍后怎么看一台电脑是几核&#xff0c;几线程呢&#xff1f; 一、我们日常中说的电脑…

JSONP 跨域访问(2), JSONP劫持

JSONP 跨域访问(2), JSONP劫持 一, 利用 XSS 漏洞执行jsonp 1. 利用过程 发现有jsonp的请求: <script type"text/javascript" src"http://192.168.112.200/security/jsonp.php?callbackjsonpCallback"></script>向xss漏洞的位置注入代码…

​软考-高级-信息系统项目管理师教程 第四版【第24章-法律法规与标准规范-思维导图】​

软考-高级-信息系统项目管理师教程 第四版【第24章-法律法规与标准规范-思维导图】 课本里章节里所有蓝色字体的思维导图

springboot 项目升级 2.7.16 踩坑

记录一下项目更新版本依赖踩坑 这个是项目最早的版本依赖 这里最初是最初是升级到 2.5.7 偷了个懒 这个版本的兼容性比较强 就选了这版本 也不用去修改就手动的去换了一下RabbitMQ的依赖 因为这边项目有AMQP 风险预警 1.spring-amqp版本低于2.4.17的用户应升级到2.4.17 2.spri…

时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测(SE注意力机制)

时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测&#xff08;SE注意力机制&#xff09; 目录 时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基本描述 1.MAT…

蓝桥杯官网练习题(移动距离)

题目描述 X 星球居民小区的楼房全是一样的&#xff0c;并且按矩阵样式排列。其楼房的编号为 1,2,3, 当排满一行时&#xff0c;从下一行相邻的楼往反方向排号。 比如&#xff1a;当小区排号宽度为 6 时&#xff0c;开始情形如下&#xff1a; 1 2 3 4 5 6 12 …

python模块之redisbloom redis布隆过滤器

一、简介 RedisBloom 是一个 Redis 模块&#xff0c;提供了布隆过滤器&#xff08;Bloom Filter&#xff09;、计数器&#xff08;Count-Min Sketch&#xff09;、Top-K&#xff08;Top-K&#xff09;、Top-K with expiry&#xff08;Top-K with Expiration&#xff09;和多样…

开发知识点-golang

golang语言学习 环境搭建win10配置go环境 ubuntu20.04安装golang介绍下载 Go 压缩包调整环境变量验证 Go 安装过程 环境搭建 win10配置go环境 中文网进行下载 https://studygolang.com/dl 配置环境变量 增加GOROOT: 新建 -->变量名为: GOROOT(必须大写) 变量值: 你安装…

2311rust无畏并发.

原文 Rust无畏并发 Rust是为了解决两个麻烦问题: 1,如何安全系统编程 2,如何无畏并发 最初,这些问题似乎是无关的,但令惊讶的是,方法竟然是相同的:使Rust安全的相同工具也可帮助解决并发问题. 内存安全和并发错误,一般认为是代码在不应访问数据时访问数据.Rust依靠所有权为…

删除word最后一页之后的空白页

最近编辑word比较多&#xff0c;有时最后一页&#xff08;最后一页内容还有可能是表格&#xff09;之后&#xff0c;还有一页空白页&#xff0c;单独按下backspace、del都删不掉&#xff0c;很让人着急。 经过查询有几种方法&#xff1a; &#xff08;1&#xff09;点击选中空…