【二刷hot-100】day1

news2024/10/17 9:41:03

目录

1.两数之和

2.字母异位词分组

 3.字母异位词分组

 4.最长连续序列

 5.移动零

6.盛最多水的容器

7.三数之和 

 8.接雨水

1.两数之和

class Solution {
    public int[] twoSum(int[] nums, int target) {
         Map<Integer,Integer> map=new HashMap<>();
         for (int i=0;i<nums.length;i++){
            if(map.containsKey(target-nums[i])){
                return new int[] {map.get(target-nums[i]),i};
            }
            map.put(nums[i],i);
         } 
         throw new IllegalArgumentException("No two sum solution");
    }
}

2.字母异位词分组

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String,List<String>> m=new HashMap<>();
        for(String str:strs){
            char[] s=str.toCharArray();
            Arrays.sort(s);
            //s相同的字符串分到同一组
            m.computeIfAbsent(new String(s),k->new ArrayList<>()).add(str);
        }
        return new ArrayList<>(m.values());
    }
}

 3.字母异位词分组

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String,List<String>> m=new HashMap<>();
        for(String str:strs){
            char[] s=str.toCharArray();
            Arrays.sort(s);
            //s相同的字符串分到同一组
            m.computeIfAbsent(new String(s),k->new ArrayList<>()).add(str);
        }
        return new ArrayList<>(m.values());
    }
}

 4.最长连续序列

class Solution {
    public int longestConsecutive(int[] nums) {
        // 创建一个 HashSet 集合用于存储数组中的整数
        Set<Integer> num_set = new HashSet<Integer>();
        for (int num : nums) {
            // 将数组中的每个整数添加到集合中,去除重复元素
            num_set.add(num);
        }
        int longestStreak = 0;
        for (int num : num_set) {
            // 如果集合中不包含当前整数减一的值,说明当前整数可能是一个连续序列的起点
            if (!num_set.contains(num - 1)) {
                int currentNum = num;
                int currentStreak = 1;
                // 当集合中包含当前数字加一的值时,说明连续序列可以继续延伸
                while (num_set.contains(currentNum + 1)) {
                    currentNum += 1;
                    currentStreak += 1;
                }
                // 更新最长连续序列的长度
                longestStreak = Math.max(longestStreak, currentStreak);
            }
            //存在那这个数肯定不是开头,直接跳过。
        }
        return longestStreak;
    }
}

 5.移动零

class Solution {
    public void moveZeroes(int[] nums) {
        if(nums==null){
            return;
        }
        //i和j指针
        int j=0;
        for(int i=0;i<nums.length;i++){
            //!=0,左边    =0,右边
            if(nums[i]!=0){
                int tmp=nums[i];
                nums[i]=nums[j];
                nums[j++]=tmp;
            }
        }
    }
}

6.盛最多水的容器

class Solution {
    public int maxArea(int[] height) {
        int n=height.length;
        int num1=0;
        int num2=n-1;
        int mx=0;
        while(num1<num2){
            mx=Math.max(mx,Math.min(height[num1],height[num2])*(num2-num1));
            if(height[num1]<height[num2]){
                num1+=1;
            }else{
                num2-=1;
            }
        }
        return mx;
    }
}

7.三数之和 

class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
         List<List<Integer>>ret=new ArrayList<>();
         Arrays.sort(nums);
         int n=nums.length;
         for(int k=0;k<n-2;k++){
            if(nums[k]>0){
                break;
            }
            //避免重复
            if(k>0&&nums[k]==nums[k-1]){
                continue;
            }
            int i=k+1;
            int j=n-1;
            while(i<j){
                int sum=nums[k]+nums[i]+nums[j];
                if(sum<0){
                    i++;
                    while(i<j&&nums[i]==nums[i-1]){
                        i++;
                    }

                }else if(sum>0){
                    j--;
                    while(i<j&&nums[j]==nums[j+1]){
                        j--;
                    }
                }else{
                    ret.add(Arrays.asList(nums[k],nums[i],nums[j]));
                    i++;
                    j--;
                    while(i<j&&nums[i]==nums[i-1]){
                        i++;
                    }
                    while(i<j&&nums[j]==nums[j+1]){
                        j--;
                    }
                }
            }
         }
         return ret;
    }
}

 8.接雨水

class Solution {
    public int trap(int[] height) {
         int n=height.length;
         //height[0]到height[i]的最大值
         int [] preMax=new int[n];
         preMax[0]=height[0];
         for(int i=1;i<n;i++){
            preMax[i]=Math.max(preMax[i-1],height[i]);
         }
         //sufMax[i]表示height[i]到height[n-1]的最大值
         int [] sufMax=new int[n];
         sufMax[n-1]=height[n-1];
         for(int i=n-2;i>=0;i--){
            sufMax[i]=Math.max(sufMax[i+1],height[i]);
         }

         int ret=0;
         for(int i=0;i<n;i++){
            ret+=Math.min(preMax[i],sufMax[i])-height[i];
         }
         return ret;
    }
}

 ps:

略显轻松。

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

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

相关文章

10.16标准IO

1、完成标准IO的单字符、字符串、格式化、模块化实现两个文件的拷贝&#xff1b; 单字符实现 #include <myhead.h> int main(int argc, const char *argv[]) {//使用单字符完成两个文件拷贝FILE *fp_srcfopen(argv[1],"r");FILE *fp_destfopen(argv[2],"…

猪圈密码简单实例

猪圈密码简单实例 猪圈密码表 根据上面的密码表&#xff0c;得到每个字母所对应的符号如下 例如单词the的加密结果为&#xff1a;

IO编程--单字符、字符串、格式化、模块化实现文件拷贝以及登录注册

一、完成标准io的单字符、字符串、格式化、模块化实现两个文件的拷贝 代码如下&#xff1a; 1.单字符 #include <myhead.h> int main(int argc, const char *argv[]) {//打开文件FILE* fpfopen("test.txt","r"); FILE* fqfopen("copy_test.txt&…

leetcode:744. 寻找比目标字母大的最小字母(python3解法)

难度&#xff1a;简单 给你一个字符数组 letters&#xff0c;该数组按非递减顺序排序&#xff0c;以及一个字符 target。letters 里至少有两个不同的字符。 返回 letters 中大于 target 的最小的字符。如果不存在这样的字符&#xff0c;则返回 letters 的第一个字符。 示例 1&a…

2024国际潜水小姐大赛中国区总决赛盛典在广州举行,吉林选手张潇文获冠军!

传承“以美之名&#xff0c;保护海洋”的精神&#xff0c;2024年10月15日晚&#xff0c;2024国际潜水小姐大赛中国区总决赛盛典在广州渔民新村隆重举行&#xff01;来自全国多个城市&#xff0c;经过层层选拔产生的20位佳丽齐聚广州&#xff0c;以独特的女性水下之美和健康美&a…

初识算法 · 二分查找(1)

目录 前言&#xff1a; 二分查找 题目解析 算法原理 算法编写 搜索插入位置 题目解析 算法原理 算法编写 前言&#xff1a; 本文呢&#xff0c;我们从滑动窗口窗口算法移步到了二分查找算法&#xff0c;我们简单了解一下二分查找算法&#xff0c;二分查找算法是一个十…

安科瑞末端组合式智慧用电装置在高校宿舍中的应用

1相关背景 学校宿舍用电隐患 安全用电历来都是学校安全工作的一个重点&#xff0c;然而每年因此发生的人身伤害以及火灾事故却在继续&#xff0c;究其原因&#xff0c;主观上是我们的防患意识淡薄&#xff0c;客观上则是由于学生在宿舍使用违规电器、乱拉电线造成的。 现代的…

Java IO 基础知识

IO 流简介 IO 即 Input/Output&#xff0c;输入和输出。数据输入到计算机内存的过程即输入&#xff0c;反之输出到外部存储&#xff08;比如数据库&#xff0c;文件&#xff0c;远程主机&#xff09;的过程即输出。数据传输过程类似于水流&#xff0c;因此称为 IO 流。IO 流在…

java关于如何实现读取各种类型的文件核心属性方法,比如获取标题和作者、主题等;附带远程的https的地址文件读取方法;

有两种方法&#xff1a; 通过提供的现成api进行调用读取pdf文件&#xff0c;或doc、xlsx、pptx文件&#xff1b;可能商业需要付费 https://www.e-iceblue.cn/pdf_java_document_operation/set-pdf-document-properties-in-java.html Spire.PDF for Java import com.spire.pdf…

为什么SSH协议是安全的?

SSH的传输层协议&#xff08;Transport Layer Protocol&#xff09;和用户鉴权协议&#xff08;Authentication Protocol&#xff09;确保数据的传输安全&#xff0c;这里只介绍传输层协议&#xff0c;是SSH协议的基础。 本文针对SSH2协议。 1、客户端连接服务器 服务器默认…

基于springboot实习管理系统

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的&#xff0c;前后端分离。 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;…

k8s use-context是什么

kubectl 的 use-context 命令用于在 Kubernetes 集群中切换上下文&#xff08;context&#xff09;&#xff0c;从而方便地在多个集群或命名空间之间进行操作。一个上下文定义了 kubectl 使用的 集群、用户 和 命名空间 的组合。 use-context 的作用&#xff1a; 每个上下文&…

msql事务隔离级别 线上问题

1. 对应代码 解决方式&#xff1a; 在事务隔离级别为可重复读&#xff08;RR&#xff09;时&#xff0c;数据库确实通常会记录当前数据的快照。 在可重复读隔离级别下&#xff0c;事务在执行期间看到的数据是事务开始时的数据快照&#xff0c;即使其他事务对数据进行了修改&am…

考研前所学c语言02(2024/10/16)

1.一个十进制的数转化为二进制的就是不断除二取余&#xff0c;得到的余数从下到上取 比如123&#xff1a; 结果为&#xff1a; 同理其他的十进制转八进制&#xff0c;十六进制就除八&#xff0c;除十六即可 再比如123转十六进制&#xff1a; 因为余数是11&#xff0c;十六进…

超详细的finalshell安装数据库以及数据库的基本操作

一、下载 MySQL Enterprise Edition Downloads | Oraclehttps://www.oracle.com/mysql/technologies/mysql-enterprise-edition-downloads.html 这边有不同的版本&#xff0c;要看你的操作系统&#xff08;centos7 / centos8&#xff09;安装的是哪个版本 我把连接提取出来了&…

Vivado - Aurora 8B/10B IP

目录 1. 简介 2. 设计调试 2.1 Physical Layer 2.2 Link Layer 2.3 Receiver 2.4 IP 接口 2.5 调试过程 2.5.1 Block Design 2.5.2 释放 gt_reset 2.5.3 观察数据 3. 实用技巧 3.1 GT 坐标与布局 3.1.1 选择器件并进行RTL分析 3.1.2 进入平面设计 3.1.3 收发器布…

stm32 F4和F7的硬件CRC保持一致的设置

stm32F4系列的CRC没什么设置选项 逆向一下算法&#xff1a;http://www.ip33.com/crc.html 在stm32F7里面&#xff0c;CRC设置很丰富&#xff0c;如下设置可以和f4算出来的保持一致

HCIP——以太网交换安全(四)DHCP Snooping

目录 一、DHCP Snooping的知识点 二、DHCP Snooping实验拓扑 三、总结 一、DHCP Snooping的知识点 1.1、DHCP snooping 概述&#xff1a; ①DHCP Snooping使能DHCP的一种安全特性&#xff0c;用于保证DHCP客户端从合法的DHCP服务端获取IP地址。DHCP服务器记录DHCP客户端IP…

沐风老师3DMAX地形散布插件TerrainScatter使用方法详解

3DMAX地形散布插件TerrainScatter&#xff0c;根据画定的区域范围和地形起伏&#xff0c;一键种植树木、批量摆放建筑等&#xff0c;对于熟练3dmax的用户&#xff0c;也可以使用TerrainScatter插件制作屋顶摆放瓦片的效果。该插件工作方式是将源对象的副本放置到闭合曲线范围内…

香港科技大学广州|可持续能源与环境学域博士招生宣讲会—大连理工大学专场!!!(暨全额奖学金政策)

香港科技大学广州&#xff5c;可持续能源与环境学域博士招生宣讲会—大连理工大学专场&#xff01;&#xff01;&#xff01;&#xff08;暨全额奖学金政策&#xff09; ⏰时间&#xff1a;2024年10月24日&#xff08;星期四&#xff09;16:00 &#x1f3e0;地点&#xff1a;…