当前位置: 首页 > news >正文

【LeetCode】热题100 刷题笔记

文章目录

  • T1 两数之和
  • T49 字母异位词分组
  • 常用小技巧

T1 两数之和

链接:1. 两数之和
题目:
在这里插入图片描述

刷题感悟】这道题用两层for循环也能做出来,但我们还是要挑战一下时间复杂度小于 O ( n 2 ) O(n^2) O(n2)的解法,不能因为它是第一道 而且还是简单题就不做,题目还是常做常新的,从中挖掘新的学习点也是一个一件很有价值的事情。

代码:

    public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> indexValueMap = new HashMap<>();for (int ii = 0; ii < nums.length; ii++) {// 把数值作为key,下标作为value好一点,因为value比key方便获取而且题目最终是希望我们返回数组下标if (indexValueMap.containsKey(target - nums[ii])) {// 初始化数组的方法return new int[] {ii, indexValueMap.get(target - nums[ii])};}indexValueMap.put(nums[ii], ii);}// 返回一个空数组return new int[] {};}

T49 字母异位词分组

链接:49. 字母异位词分组
题目:
在这里插入图片描述
代码:

    public List<List<String>> groupAnagrams(String[] strs) {// 1. Map<String, String> -> Map<单词字典序, 单词>// 博客:将一个字符串转成字典序排列的字符串(有点想复杂了)// Step1: 收集异位词Map<String, List<String>> map = new HashMap<>();for (String str : strs) {String sortedString = getSortedString(str);if (map.containsKey(sortedString)) {List<String> wordList = map.get(sortedString);wordList.add(str);map.put(sortedString, wordList);continue;}// 初始化数组的方法map.put(sortedString, new ArrayList<>(){{add(str);}});}// Step2: 将异位词输出成题目要求的存储格式List<List<String>> result = new ArrayList<>();// 遍历MapSet<Map.Entry<String, List<String>>> wordEntrySet = map.entrySet();wordEntrySet.forEach(entrySet -> result.add(entrySet.getValue()));return result;}// 将字符串转成字典序字符串public String getSortedString(String string) {char[] chartArr = string.toCharArray();Arrays.sort(chartArr); // 按字典序排列return String.valueOf(chartArr); // char数组转成字符串}

常用小技巧

初始化数组的方法

new int[] {1, 2};

初始化List的方法

new ArrayList<>(){{ // 两层括号add(str);
}};

将字符串转换成它的字典序字符串

char[] chartArr = string.toCharArray(); // 先把字符串转成char数组
Arrays.sort(chartArr); // 按字典序排列
return String.valueOf(chartArr); // char数组转成字符串

遍历map

// 1. 先把map的entrySet赋值给一个Set
Set<Map.Entry<String, List<String>>> wordEntrySet = map.entrySet();
// 2. 再用Lambda表达式遍历set
wordEntrySet.forEach(entrySet -> result.add(entrySet.getValue()));

相关文章:

【LeetCode】热题100 刷题笔记

文章目录 T1 两数之和T49 字母异位词分组常用小技巧 T1 两数之和 链接&#xff1a;1. 两数之和 题目&#xff1a; 【刷题感悟】这道题用两层for循环也能做出来&#xff0c;但我们还是要挑战一下时间复杂度小于 O ( n 2 ) O(n^2) O(n2)的解法&#xff0c;不能因为它是第一道 …...

基于springboot+vue+Mysql的火车订票管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

C#学习笔记 面试提要

冒泡 for (int m 0; m < arr.Length; m) { for (int n 0; n < arr.Length - 1 - m; n) { if (arr[n] > arr[n1]) { int temp arr[n]; arr[n] arr[n 1]; arr[n1] temp; } } } 选择 for (int m 0; m < arr.Length; m) { int index 0; for (int n 1; n < …...

Linux用户识别与身份验证命令一览

这些命令在系统管理、用户管理和监控工作中扮演着重要的角色。下面&#xff0c;介绍它们的类型及功能描述&#xff1a; 一、系统信息命令 hostname&#xff1a;此命令用于显示系统的主机名&#xff0c;它代表了系统在网络中的唯一标识。hostname -f&#xff1a;此命令进一步展…...

【Linux】GCC编译器(七)

文章目录 初步了解安装 GCC编译第一个程序编译选项 初步了解 GCC是GNU Compiler Collection的缩写&#xff0c;是一个由GNU项目开发的编译器集合。 GCC的历史和发展&#xff1a;GCC最初由理查德斯托曼&#xff08;Richard Stallman&#xff09;发起&#xff0c;目的是创建一个…...

【目录整理】(五)

​​​​​Git 基础 Git 详细安装教程文章浏览阅读10w次&#xff0c;点赞9.6k次&#xff0c;收藏1.7w次。Git 是个免费的开源分布式版本控制系统&#xff0c;下载地址为git-scm.com 或者 gitforwindows.org&#xff0c;本文介绍 Git-2.40.0-64-bit.exe 版本的安装方法&#x…...

项目:USB键盘和鼠标的复合设备

我们的复合设备使用一个物理设备就可以完成多个功能。 使用复合设备同时完成USB键盘和鼠标功能&#xff0c;它的主要实现方式有两种&#xff0c; 第一个就是我们将多个设备描述符合并成一个&#xff0c;这个相对比较简单&#xff0c;我们只要根据相应的报告描述符处理数据就可…...

Linux利用Jenkins部署SpringBoot项目保姆级教程

在当今快速发展的软件开发领域&#xff0c;持续集成和持续部署&#xff08;CI/CD&#xff09;已经成为提升开发效率、缩短产品上市时间的关键实践。Linux系统以其稳定性和开源友好性&#xff0c;成为众多开发者和企业的首选平台。而Spring Boot&#xff0c;作为一个轻量级的Jav…...

elementUI 输入框按回车刷新页面问题

分析原因&#xff1a; 当 el-form 表单内只有一个 el-input 输入框时&#xff0c;且type为text类型时&#xff0c;在输入框内按回车就会触发表单的提交事件。 而当 el-form 表单内有多个 el-input 输入框时&#xff0c;按回车不会执行任何操作。 使用.prevent修饰符来阻止默…...

C++的字节对齐

什么是字节对齐 参考什么是字节对齐&#xff0c;为什么要对齐? 现代计算机中&#xff0c;内存空间按照字节划分&#xff0c;理论上可以从任何起始地址访问任意类型的变量。但实际中在访问特定类型变量时经常在特定的内存地址访问&#xff0c;这就需要各种类型数据按照一定的规…...

ALPHA开发板上的PHY芯片驱动:LAN8720驱动

一. 简介 前面文章了解到&#xff0c;Linux内核是有提供 PHY通用驱动的。 本文来简单了解一下ALPHA开发板上的 PHY网络芯片LAN8720的驱动。是 LAN8720芯片的公司提供的 PHY驱动。 二. ALPHA开发板上的PHY芯片驱动&#xff1a;LAN8720驱动 我 们 来 看 一 下 LAN8720A 的 …...

C语言游戏实战(9):球球大作战

前言&#xff1a; 这款简易版的球球大作战是一款单人游戏&#xff0c;玩家需要控制一个小球在地图上移动&#xff0c;吞噬其他小球来增大自己的体积。本游戏使用C语言和easyx图形库编写&#xff0c;旨在帮助初学者了解游戏开发的基本概念和技巧。 在开始编写代码之前&#xf…...

【Windows】关闭自动更新

右键单击“此电脑”&#xff0c;点击“管理”。 找到&#xff1a;任务计划程序 -> 任务计划程序库 -> Microsoft -> Windows -> WindowsUpdate 右键单击Scheduled Start任务&#xff0c;然后点击“禁用”即可。 可能还会存在左下角提示更新重启的字样&#x…...

mac如何检测移动硬盘 mac硬盘检测工具 Tuxera怎么用 Tuxera NTFS官网

在工作学习中&#xff0c;我们都绕不开用移动硬盘来拷贝存储一些文件。但是在使用过程中&#xff0c;我们经常遇到“mac检测不到移动硬盘”“移动硬盘不存在”等问题&#xff0c;今天本文就带大家了解下mac如何检测移动硬盘&#xff0c;mac硬盘检测工具。 一、mac如何检测移动…...

1038 Recover the Smallest Number

idea 给出若干个可能含有前导0的数字串&#xff0c;将其进行拼接使其组成的数最小。 拼接串&#xff0c;想到借助string。 找最小&#xff0c;样例中的32,321, 3214尤为具备代表性&#xff0c;让字典序小的数尽可能靠前&#xff0c;联想到string的比较规则也是字典序 >判断…...

【Go】四、包名、访问范围控制、标识符、运算符

文章目录 1、_2、包名3、命名大小影响可访问范围4、运算符5、获取终端输入 1、_ 下划线"_"本身在Go中是一个特殊的标识符&#xff0c;称为空标识符用于忽略某个值 1&#xff09;忽略导入的没使用的包 2&#xff09;忽略某个返回值 2、包名 main包是程序的入口包&a…...

达梦数据库日志文件管理

达梦数据库日志文件管理 联机重做日志管理归档日志文件管理开启归档模式&#xff1a;SQL开启归档模式&#xff1a;dmarch.ini归档文件切换和删除 联机重做日志管理 检查联机重做日志&#xff1a; select * from v$rlog; --CUR_FILE表示正在使用的日志文件编号select * fr…...

zookeeper 监控 与 JVM 设置

一、通过JMX监控 JVM 默认情况下&#xff0c;在 ./bin/zkServer.sh 脚本中是默认开启了JMX监控的&#xff0c;并且是不需要认证的&#xff0c;详情可见ZOOMAIN变量&#xff1b; ZOOMAIN"-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port$JMXPORT -D…...

【java】关于String、StringBuffer和StringBuilder的那些事

在之前的文章中我们曾简单介绍过String这个引用类型变量&#xff0c;其实它还有许多特性&#xff0c;还有StringBuffer和StringBuilder这两个方法在字符串操作中也有非常重要的地位&#xff0c;接下来就由小编带大家梳理一下吧&#x1f44a; 目录 一、String 1、构造方法 2、…...

Spring 的 Ioc配置

HappyComponent.java package com.atguigu.Ioc_01;public class HappyComponent {// 默认包含无参的构造方法public void dowork(){System.out.println("HappyComponent.dowork");} }ClientService.java package com.atguigu.Ioc_01;静态工厂类 public class Clien…...

Leetcode 数据结构刷题 ->链表1

[27. 移除元素]移除等于所给值的元素&#xff0c;我们可以直接使用双指针&#xff0c;对着来的。关键就是把不等于x的值&#xff08;我改一下&#xff0c;没用val&#xff09;&#xff0c;放到后面去&#xff0c;这样前面就全部都是不等于x值&#xff0c;再计数即可。看代码就对…...

高效安全:从远程服务器到本地Windows的文件传输全攻略

1. 远程桌面连接&#xff1a;最直观的文件传输方式 远程桌面连接&#xff08;RDP&#xff09;是Windows系统自带的"杀手级"功能&#xff0c;我帮客户部署项目时90%的场景都会用它传文件。它的优势在于操作可视化程度高&#xff0c;就像直接在服务器桌面上操作本地文件…...

3大场景解析:开源工具如何重构MobaXterm的专业版体验

3大场景解析&#xff1a;开源工具如何重构MobaXterm的专业版体验 【免费下载链接】MobaXterm-Keygen MobaXterm Keygen Originally by DoubleLabyrinth 项目地址: https://gitcode.com/gh_mirrors/mob/MobaXterm-Keygen 在开发者的日常工作中&#xff0c;终端工具的选择…...

OpenClaw安全加固:nanobot镜像的权限控制最佳实践

OpenClaw安全加固&#xff1a;nanobot镜像的权限控制最佳实践 1. 为什么需要关注OpenClaw的安全配置 去年夏天&#xff0c;我在本地部署OpenClaw时犯过一个致命错误——直接以管理员权限运行了未经审查的自动化脚本。结果这个脚本在半夜执行时误删了我整个项目目录的源码&…...

3个步骤掌握FCEUX:开源NES模拟器的全方位应用指南

3个步骤掌握FCEUX&#xff1a;开源NES模拟器的全方位应用指南 【免费下载链接】fceux FCEUX, a NES Emulator 项目地址: https://gitcode.com/gh_mirrors/fc/fceux FCEUX是一款功能强大的开源NES模拟器&#xff08;任天堂娱乐系统游戏模拟工具&#xff09;&#xff0c;以…...

如何用WechatFerry构建企业级微信自动化解决方案

如何用WechatFerry构建企业级微信自动化解决方案 【免费下载链接】wechatferry 基于 WechatFerry 的微信机器人底层框架 项目地址: https://gitcode.com/gh_mirrors/wec/wechatferry 一、场景化价值&#xff1a;从业务痛点到自动化突破 在数字化转型加速的今天&#xf…...

零基础玩转luci-app-unblockneteasemusic完全指南:从安装到多设备协同的3步进阶法

零基础玩转luci-app-unblockneteasemusic完全指南&#xff1a;从安装到多设备协同的3步进阶法 【免费下载链接】luci-app-unblockneteasemusic [OpenWrt] 解除网易云音乐播放限制 项目地址: https://gitcode.com/gh_mirrors/lu/luci-app-unblockneteasemusic luci-app-u…...

s2-pro GPU算力适配实战:显存优化部署让语音合成延迟降低40%

s2-pro GPU算力适配实战&#xff1a;显存优化部署让语音合成延迟降低40% 1. 专业语音合成新选择 s2-pro是Fish Audio开源的专业级语音合成模型镜像&#xff0c;它让高质量的文本转语音变得触手可及。与普通语音合成工具不同&#xff0c;s2-pro支持通过参考音频复用音色&#…...

35:L构建数据泄露检测:蓝队的数据保护

作者&#xff1a; HOS(安全风信子) 日期&#xff1a; 2026-03-11 主要来源平台&#xff1a; GitHub 摘要&#xff1a; 当基拉开始针对数据进行攻击时&#xff0c;数据泄露成为蓝队防御的关键挑战。L构建了数据泄露检测系统&#xff0c;通过AI算法分析数据流动、访问模式和异常行…...

Nunchaku FLUX.1-dev 结合Transformer架构:提升图像生成一致性与细节

Nunchaku FLUX.1-dev 结合Transformer架构&#xff1a;提升图像生成一致性与细节 最近在尝试各种文生图模型时&#xff0c;我发现了一个挺有意思的现象&#xff1a;很多模型在处理简单描述时表现不错&#xff0c;但一旦遇到包含多个对象、复杂关系或者长段描述的提示词&#x…...