【算法练习】leetcode算法题合集之数组和哈希表篇

重建数组(高频)

LeetCode283.移动零

LeetCode283.移动零

双指针,记录已经处理好的序列的尾部

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

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

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

思路是一样的,序列中是不重复的有序序列。

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

双指针

剑指offer21.调整数组顺序使奇数位于偶数前面

剑指offer21.调整数组顺序使奇数位于偶数前面

一个指针向后,一个指针从尾部向前。i之前的元素都是奇数,j之后的元素都是偶数。

class Solution {public int[] trainingPlan(int[] actions) {int length = actions.length;int i = 0, j = length - 1;while (i < j) {while (i < j && actions[i] % 2 != 0) {i++;}while (i < j && actions[j] % 2 == 0) {j--;}swap(actions, i, j);}return actions;}private void swap(int[] actions, int i, int j) {int tmp = actions[i];actions[i] = actions[j];actions[j] = tmp;}
}

LeetCode11. 盛最多水的容器

LeetCode11. 盛最多水的容器

使用双指针。更高的一方不动,调整矮的一方,使得整体的高度在上升。

class Solution {public int maxArea(int[] height) {int i = 0, j = height.length - 1;int res = 0;while (i < j) {if (height[i] < height[j]) {res = Math.max(res, height[i] * (j - i));i++;} else {res = Math.max(res, height[j] * (j - i));j--;}}return res;}
}

LeetCode1.两数之和

1. 两数之和

不能重复使用当下元素,有一个测试用例是这样的[3,2,4],6,由于索引为3的元素重复使用可以得到结果6.

class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map = new HashMap<>();int[] res = new int[2];for (int i = 0; i < nums.length; i++) {if (map.containsKey(target - nums[i])) {Integer index = map.get(target - nums[i]);res[0] = i;res[1] = index;break;}map.put(nums[i], i);}return res;}
}

LeetCode167. 两数之和 II - 输入有序数组

LeetCode167. 两数之和 II - 输入有序数组

class Solution {public int[] twoSum(int[] numbers, int target) {int i = 0, j = numbers.length - 1;int[] res = new int[2];while (i < j) {int sum = numbers[i] + numbers[j];if (sum < target) {i++;} else if (sum > target) {j--;} else {res[0] = i + 1;res[1] = j + 1;break;}}return res;}
}

在这里插入图片描述

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

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

相关文章

JavaScript 异步编程解决方案-上篇

1、JavaScript 异步编程 1、传统的方案 :JavaScript 中的异步操作函数往往通过回调函数来实现异步任务的结果处理 场景:fs 文件操作 数据库操作 AJAX 定时器 eg: 1、setTimeout 函数 //异步回掉,通过函数回调解决function printInfo() {document.getElementsByTagName(d…

Kafka的简介及架构

目录 消息队列 产生背景 消息队列介绍 常见的消息队列产品 应用场景 消息队列的消息模型 Kafka的基本介绍 简介 Kafka的架构 Kafka的使用 Kafka的shell命令 Kafka的Python API的操作 完成生产者代码 完成消费者代码 消息队列 产生背景 消息队列:指数据在一个容器…

Linux学习记录——삼십팔 网络层IP协议

文章目录 1、了解IP协议2、IP协议报文1、8位服务类型2、16位总长度&#xff08;字节数&#xff09;3、8位生存时间&#xff08;TTL&#xff09; 3、网段划分1、网段划分和CIDR方案2、子网划分简单方法3、IP地址问题的解决方案 4、公网内网1、内网分配2、运营商管理方法 5、路由…

【Python基础】一文搞懂:Python 中 Excel 文件的写入与读取

文章目录 1 引言2 使用 openpyxl2.1 安装 openpyxl2.2 写入 Excel 文件2.3 读取 Excel 文件 3 使用 pandas3.1 安装 pandas 和 openpyxl3.2 写入 Excel 文件3.3 读取 Excel 文件 4 实例演示4.1 安装所需库4.2 封装为excel_example.py脚本文件 5 注意事项6 总结 1 引言 在现代办…

spring-boot项目启动类错误: 找不到或无法加载主类 com.**Application

问题&#xff1a;Springboot项目启动报错&#xff1a;错误: 找不到或无法加载主类 com.**Application 解决步骤&#xff1a; 1.File–>Project Structure 2.Modules–>选中你的项目–点击“-”移除 3.重新导入&#xff1a;点击“”号&#xff0c;选择Import Module&…

【漏洞复现】优卡特脸爱云一脸通智慧管理平台文件上传漏洞

Nx01 产品简介 脸爱云一脸通智慧管理平台是一套功能强大&#xff0c;运行稳定&#xff0c;操作简单方便&#xff0c;用户界面美观&#xff0c;轻松统计数据的一脸通系统。无需安装&#xff0c;只需在后台配置即可在浏览器登录。 功能包括&#xff1a;系统管理中心、人员信息管…

【react-quill】富文本编辑器空格回显无效

<ReactQuilltheme"snow"id{id}ref{(el:any) > {if (el) {reactQuillRef.current el;}}}modules{modules}formats{formats}value{value}onChange{onChange}onBlur{onBlur}className"ql-editor"/> 关键&#xff1a; className"ql-editor&quo…

GPT 商店强势来袭,人人都要有自己的 GPTs

作者&#xff1a;苍何&#xff0c;前大厂高级 Java 工程师&#xff0c;阿里云专家博主&#xff0c;CSDN 2023 年 实力新星&#xff0c;土木转码&#xff0c;现任部门技术 leader&#xff0c;专注于互联网技术分享&#xff0c;职场经验分享。 &#x1f525;热门文章推荐&#xf…

网络基础学习(3):交换机

1.交换机结构 &#xff08;1&#xff09;网线接口和后面的电路部分加在一起称为一个端口&#xff0c;也就是说交换机的一个端口就相当于计算机上的一块网卡。 如果在计算机上安装多个网卡&#xff0c;并让网卡接收所有网络包&#xff0c;再安装具备交换机功能的软件&#xff0…

ORB SLAM2 编译

文章目录 软件版本编译编译自动编译手动编译 软件版本 Pangolin0.6opencv3.4.0 ORB SLAM2 编译 # 更改Opencv依赖版本与添加Pangolin依赖 # CMakelist.txt更改 LIST(APPEND CMAKE_PREFIX_PATH /usr/local/opencv-3.4) # 添加 LIST(APPEND CMAKE_PREFIX_PATH /usr/local/Pang…

数据加工:从原始数据到有价值的信息

在当今数字化的时代&#xff0c;数据已经成为了企业和组织最宝贵的资产之一。然而&#xff0c;原始数据往往需要经过加工和处理&#xff0c;才能转化为有价值的信息和知识。数据加工是指将原始数据进行处理和分析&#xff0c;以提取有用的信息和知识的过程。数据加工的重要性不…

springboot 集成kafka

1. SpringBoot快速集成Kafak_springboot集成kafaka-CSDN博客 2. kafka 启动&#xff1a;Windows系统下快速启动Kafka_windows启动kafka-CSDN博客 3.

idea 设置文件头

idea 设置创建文件时自动添加文档注释信息 /** * Description * Author jimaomao * DATE ${DATE} ${TIME} */

c# ==操作符和equals方法的区别

在C#中&#xff0c;""操作符和Equals()方法有着不同的用途和行为。 ""操作符&#xff1a; "“操作符用于比较两个对象的值是否相等。当使用”"操作符比较两个引用类型的对象时&#xff0c;它会比较它们的引用是否指向相同的内存地址。对于值类…

【Kafka-3.x-教程】-【五】Kafka-监控-Eagle

【Kafka-3.x-教程】专栏&#xff1a; 【Kafka-3.x-教程】-【一】Kafka 概述、Kafka 快速入门 【Kafka-3.x-教程】-【二】Kafka-生产者-Producer 【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft 【Kafka-3.x-教程】-【四】Kafka-消费者-Consumer 【Kafka-3.x-教程】-【五…

React之自定义路由组件

开篇 react router功能很强大&#xff0c;可以根据路径配置对应容器组件。做到组件的局部刷新&#xff0c;接下来我会基于react实现一个简单的路由组件。 代码 自定义路由组件 import {useEffect, useState} from "react"; import React from react // 路由配置 e…

机器人领域顶刊TRO,TASE及RAL的区别与关系

一、背景 机器人领域越来越火&#xff0c;特别是具身智能的加持&#xff0c;让机器人在不久的未来可以完成更多复杂的任务&#xff0c;进入到我们的生活&#xff08;不过应该还需要很长时间&#xff09;。作为机器人方向的研究僧&#xff0c;我们会看到许多机器人期刊&#xf…

Semaphore信号量详解

在Java并发编程中&#xff0c;Semaphore是一个非常重要的工具类。它位于java.util.concurrent包中&#xff0c;为我们提供了一种限制对临界资源的访问的机制。你可以将其视为一个同步控制的瑞士军刀&#xff0c;因为它既能够控制对资源的并发访问数量&#xff0c;也能够保证资源…

2000-2021年全国各省环境相关指标数据(890+指标)

2000-2021年全国各省环境相关指标数据&#xff08;890指标&#xff09; 1、指标时间&#xff1a;2000-2021年 2、范围&#xff1a;31省市 3、来源&#xff1a;2001-2022年环境统计年鉴 4、指标&#xff1a;工业废水排放总量、工业废水排放达标量、工业废水处理量、化学需氧…

C语言代码 转换ASCII码为对应字符

转换以下ASCII码为对应字符并输出它们&#xff0c; 73,32,99,97,110,32,100,111,32,105,116,33 代码示例&#xff1a; #include <stdio.h>int main() {int arr[] { 73,32,99,97,110,32,100,111,32,105,116,33 };int i 0;int sz sizeof(arr) / sizeof(arr[0]);whil…