LeetCode初级算法书Java题解日常更新

LeetCode初级算法高效题解(含思路注释)


文章目录

  • LeetCode初级算法高效题解(含思路注释)
  • 前言
  • 一、数组
    • 1.删除排序数组中的重复项
    • 2.买卖股票的最佳时机 II
    • 3.旋转数组
    • 4.存在重复元素
  • 总结


前言

决定用四个月过一下算法


一、数组

1.删除排序数组中的重复项

>给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

class Solution {public int removeDuplicates(int[] nums) {int left=0;//请你 原地 删除重复出现的元素,使每个元素 只出现一次 for(int right=1;right<nums.length;right++){//如果右等于左,左不变,右加一if(nums[right]!=nums[left]){//左指针先往前再赋值left++;nums[left]=nums[right];}}return left+1;}
}

2.买卖股票的最佳时机 II

代码如下(示例):

class Solution {public int maxProfit(int[] prices) {int sum=0;//本题即求无序数组的最大值与最小值的差for(int i=0;i<prices.length-1;i++){//注意length-1这里外层循环遍历到倒数第二个即可if(prices[i+1]>prices[i]){//如果后一个大于前一个则把两者差值存进sumsum+=prices[i+1]-prices[i];//两两前后遍历的差值和即为最低值与最高值的差值}}return sum;}
}

3.旋转数组

在这里插入图片描述

class Solution {public void rotate(int[] nums, int k) {int length=nums.length;int[] tem=new int[length];//先用临时数组存原数组方便后边原数组存值for(int i=0;i<length;i++){tem[i]=nums[i];}//用i与偏移量k两者和去取余数组长度,得到偏移后的位置for(int i=0;i<length;i++){nums[(i+k)%length]=tem[i];}}
}

4.存在重复元素

在这里插入图片描述

class Solution {public boolean containsDuplicate(int[] nums) {Set<Integer> set=new HashSet<>();//hashSet重复元素不可插入for(int i=0;i<nums.length;i++){//hashSet.add如果返回false则说明有重复元素插入if(!set.add(nums[i])){return true;}}return false;}
}

总结

这个月先过一遍基础算法,后边再做打算。

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

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

相关文章

基于Spring Boot的入职匹配推荐系统设计与实现

基于Spring Boot的入职匹配推荐系统设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 管理员登录界面&#xff0c;登录成功后进入到系统操…

Deformable Convolutional Networks论文阅读

Deformable Convolutional Networks论文阅读 Abstract1. Introduction2. Deformable Convolutional Networks2.1. Deformable Convolution2.2. Deformable RoI Pooling 总结 文章信息&#xff1a; 原文链接&#xff1a;https://arxiv.org/abs/1703.06211 源代码&#xff1a;htt…

移动平台相关(安卓)

目录 安卓开发 Unity打包安卓 ​编辑​编辑 BuildSettings PlayerSettings OtherSettings 身份证明 配置 脚本编译 优化 PublishingSettings 调试 ReMote Android Logcat AndroidStudio的调试 Java语法 ​编辑​编辑​编辑 变量 运算符 ​编辑​编辑​编辑​…

【随笔】Git 基础篇 -- 分支与合并 git rebase(十)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

Vue3从入门到实战:路由知识点

本人在B站上关于vue3的尚硅谷的课程&#xff0c;以下是整理一些笔记。 1.两个知识点 1.路由组件通常存放在pages 或 views文件夹&#xff0c;一般组件通常存放在components文件夹。 组件可以分为&#xff1a; 1. 一般组件&#xff1a;亲手写标签出来的 2. 路由组件&#…

【第十二篇】使用BurpSuite实现CSRF(实战案例)

CSRF存在前提:简单的身份验证只能保证请求是发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的 业务场景:新增、删除、收藏、编辑、保存使用Burp发现CSRF漏洞的过程如下。 1、如图,存在修改邮箱的功能点如下: 2、修改邮箱的流量包,此时邮箱已被修改: 思路:是…

【拓扑的基】示例及详解

集合X的某拓扑的一个基是X的子集的一个族(其成员称为基元素)&#xff0c;满足条件&#xff1a; 1. 2. 由基生成拓扑 由生成的拓扑(满足以上两个条件&#xff09; 等价描述&#xff1a; 由所有可表示为的某些成员的井的那些集合组成 例1: 证明&#xff1a;由生成的族确实是拓扑…

vue2 父子组件通讯

父传子 父组件&#xff1a;app.vue <template><div>app 父组件<!-- 2.动态绑定定义的数据 --><LiCount :title"mytitle"></LiCount></div> </template><script> import LiCount from "./components/LiCount.…

机场数据治理系列介绍(5)民用机场智慧能源系统评价体系设计

目录 一、背景 二、体系设计 1、评价体系设计维度 2、评价体系相关约定 3、评价指标体系框架设计 4、能源利用评价指标 5、环境友好评价指标 6、智慧管控评价指标 7、安全保障评价指标 三、具体落地措施 一、背景 在“双碳”国策之下&#xff0c;各类机场将能源系统建…

6.10物联网RK3399项目开发实录-驱动开发之SPI接口的使用(wulianjishu666)

嵌入式实战开发例程&#xff0c;珍贵资料&#xff0c;开发必备&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1149x7q_Yg6Zb3HN6gBBAVA?pwdhs8b SPI 使用 SPI 简介 SPI 是一种高速的&#xff0c;全双工&#xff0c;同步串行通信接口&#xff0c;用于连接微控制器、…

使用单点登录(SSO)如何提高安全性和用户体验

什么是单点登录&#xff08;SSO&#xff09; 对于所有大量采用云应用程序的组织来说&#xff0c;有效的身份管理是一个巨大的挑战&#xff0c;如果每个 SaaS 应用程序的用户身份都是独立管理的&#xff0c;则用户必须记住多个密码&#xff0c;技术支持技术人员在混合环境中管理…

20万就想买智能驾驶汽车?!我给你找到了三款车

文 | AUTO芯球 作者 | 雷歌 我都不敢相信&#xff0c;智能驾驶的车型已经这么便宜啦&#xff01; 一年多前&#xff0c;我一个前同事大冤种&#xff0c;还另掏3万多买某个造车新势力品牌的智驾包呢。 现在动不动就全给你标配了。 近的就说刚刚发布的小米SU7标准版&#xf…