【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 两数之和 链接:1. 两数之和 题目: 【刷题感悟】这道题用两层for循环也能做出来,但我们还是要挑战一下时间复杂度小于 O ( n 2 ) O(n^2) O(n2)的解法,不能因为它是第一道 …...
基于springboot+vue+Mysql的火车订票管理系统
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
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用户识别与身份验证命令一览
这些命令在系统管理、用户管理和监控工作中扮演着重要的角色。下面,介绍它们的类型及功能描述: 一、系统信息命令 hostname:此命令用于显示系统的主机名,它代表了系统在网络中的唯一标识。hostname -f:此命令进一步展…...
【Linux】GCC编译器(七)
文章目录 初步了解安装 GCC编译第一个程序编译选项 初步了解 GCC是GNU Compiler Collection的缩写,是一个由GNU项目开发的编译器集合。 GCC的历史和发展:GCC最初由理查德斯托曼(Richard Stallman)发起,目的是创建一个…...
【目录整理】(五)
Git 基础 Git 详细安装教程文章浏览阅读10w次,点赞9.6k次,收藏1.7w次。Git 是个免费的开源分布式版本控制系统,下载地址为git-scm.com 或者 gitforwindows.org,本文介绍 Git-2.40.0-64-bit.exe 版本的安装方法&#x…...
项目:USB键盘和鼠标的复合设备
我们的复合设备使用一个物理设备就可以完成多个功能。 使用复合设备同时完成USB键盘和鼠标功能,它的主要实现方式有两种, 第一个就是我们将多个设备描述符合并成一个,这个相对比较简单,我们只要根据相应的报告描述符处理数据就可…...
Linux利用Jenkins部署SpringBoot项目保姆级教程
在当今快速发展的软件开发领域,持续集成和持续部署(CI/CD)已经成为提升开发效率、缩短产品上市时间的关键实践。Linux系统以其稳定性和开源友好性,成为众多开发者和企业的首选平台。而Spring Boot,作为一个轻量级的Jav…...
elementUI 输入框按回车刷新页面问题
分析原因: 当 el-form 表单内只有一个 el-input 输入框时,且type为text类型时,在输入框内按回车就会触发表单的提交事件。 而当 el-form 表单内有多个 el-input 输入框时,按回车不会执行任何操作。 使用.prevent修饰符来阻止默…...
C++的字节对齐
什么是字节对齐 参考什么是字节对齐,为什么要对齐? 现代计算机中,内存空间按照字节划分,理论上可以从任何起始地址访问任意类型的变量。但实际中在访问特定类型变量时经常在特定的内存地址访问,这就需要各种类型数据按照一定的规…...
ALPHA开发板上的PHY芯片驱动:LAN8720驱动
一. 简介 前面文章了解到,Linux内核是有提供 PHY通用驱动的。 本文来简单了解一下ALPHA开发板上的 PHY网络芯片LAN8720的驱动。是 LAN8720芯片的公司提供的 PHY驱动。 二. ALPHA开发板上的PHY芯片驱动:LAN8720驱动 我 们 来 看 一 下 LAN8720A 的 …...
C语言游戏实战(9):球球大作战
前言: 这款简易版的球球大作战是一款单人游戏,玩家需要控制一个小球在地图上移动,吞噬其他小球来增大自己的体积。本游戏使用C语言和easyx图形库编写,旨在帮助初学者了解游戏开发的基本概念和技巧。 在开始编写代码之前…...
【Windows】关闭自动更新
右键单击“此电脑”,点击“管理”。 找到:任务计划程序 -> 任务计划程序库 -> Microsoft -> Windows -> WindowsUpdate 右键单击Scheduled Start任务,然后点击“禁用”即可。 可能还会存在左下角提示更新重启的字样&#x…...
mac如何检测移动硬盘 mac硬盘检测工具 Tuxera怎么用 Tuxera NTFS官网
在工作学习中,我们都绕不开用移动硬盘来拷贝存储一些文件。但是在使用过程中,我们经常遇到“mac检测不到移动硬盘”“移动硬盘不存在”等问题,今天本文就带大家了解下mac如何检测移动硬盘,mac硬盘检测工具。 一、mac如何检测移动…...
1038 Recover the Smallest Number
idea 给出若干个可能含有前导0的数字串,将其进行拼接使其组成的数最小。 拼接串,想到借助string。 找最小,样例中的32,321, 3214尤为具备代表性,让字典序小的数尽可能靠前,联想到string的比较规则也是字典序 >判断…...
【Go】四、包名、访问范围控制、标识符、运算符
文章目录 1、_2、包名3、命名大小影响可访问范围4、运算符5、获取终端输入 1、_ 下划线"_"本身在Go中是一个特殊的标识符,称为空标识符用于忽略某个值 1)忽略导入的没使用的包 2)忽略某个返回值 2、包名 main包是程序的入口包&a…...
达梦数据库日志文件管理
达梦数据库日志文件管理 联机重做日志管理归档日志文件管理开启归档模式:SQL开启归档模式:dmarch.ini归档文件切换和删除 联机重做日志管理 检查联机重做日志: select * from v$rlog; --CUR_FILE表示正在使用的日志文件编号select * fr…...
zookeeper 监控 与 JVM 设置
一、通过JMX监控 JVM 默认情况下,在 ./bin/zkServer.sh 脚本中是默认开启了JMX监控的,并且是不需要认证的,详情可见ZOOMAIN变量; ZOOMAIN"-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port$JMXPORT -D…...
【java】关于String、StringBuffer和StringBuilder的那些事
在之前的文章中我们曾简单介绍过String这个引用类型变量,其实它还有许多特性,还有StringBuffer和StringBuilder这两个方法在字符串操作中也有非常重要的地位,接下来就由小编带大家梳理一下吧👊 目录 一、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…...
HoRain云--Lua元表:解锁高级编程技巧
🎬 HoRain云小助手:个人主页 🔥 个人专栏: 《Linux 系列教程》《c语言教程》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!…...
Stata 数据处理实战:时间序列数据的日期转换与聚合
1. 时间序列数据处理的常见痛点 刚接触时间序列分析的朋友们,经常会遇到这样的困扰:从Excel导入的数据明明是日期格式,到了Stata里却变成了看不懂的字符;想按周汇总销售数据,却发现系统根本不认识"2023-W15"…...
嵌入式调试进阶:JScope RTT模式移植与性能实测(对比HSS,速度提升千倍)
嵌入式调试革命:JScope RTT模式深度优化与高频数据采集实战 在电机控制、电源管理和高速信号处理等嵌入式应用场景中,开发人员经常需要实时监控关键变量的变化趋势。传统调试工具往往面临采样率低、数据延迟大等问题,而SEGGER JScope的RTT模式…...
STM32H7网络通信避坑指南:CubeMX配置LWIP 2.1.2时,这几个DCache和ETH的坑你别踩
STM32H7网络通信深度优化:LWIP 2.1.2配置与Cache一致性实战解析 当你在CubeMX中勾选了ETH和LWIP组件,生成代码后却发现设备无法稳定响应ping请求,或者传输大文件时出现数据错乱——这很可能与STM32H7独特的Cache架构有关。本文将带你深入理解…...
Beyond Compare 5完全激活指南:3种简单方法告别30天试用限制
Beyond Compare 5完全激活指南:3种简单方法告别30天试用限制 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 你是否正在使用Beyond Compare 5这款强大的文件对比工具,却因…...
创业团队如何利用Taotoken进行多模型选型与成本控制
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 创业团队如何利用Taotoken进行模型选型与成本控制 对于初创团队的技术负责人而言,在有限的预算下既要满足快速迭代的产…...
PaspberryPi推流
1. 创建启动脚本sudo nano /usr/local/bin/rtsp-stream.sh添加内容:#!/bin/bash# RTSP 音视频推流服务脚本 # 适配 Raspberry Pi 3B Camera Module USB 麦克风# 配置项 WIDTH1280 HEIGHT720 FRAMERATE15 VIDEO_BITRATE2000000 AUDIO_DEVICE"hw:1,0" …...
Midjourney Spinach印相实操手册:手把手配置--sref、--stylize、--cw权重,5分钟复刻暗房级颗粒与褪色层次
更多请点击: https://intelliparadigm.com 第一章:Midjourney Spinach印相的核心美学溯源 Midjourney Spinach印相并非官方功能命名,而是社区对一类高对比度、低饱和、肌理感强烈且带有手工暗房隐喻的图像生成风格的诗意指称。“Spinach”一…...
我写的C语言代码笔记
单链表:#include <stdio.h> #include <stdlib.h>//实现初始化,头插,尾插,删除,输出等单链表的基本操作 typedef struct Node {int data;struct Node* next; }Node;//初始化 Node* intList() {Node* list …...
不删除属性的情况下简化对象属性的方法探讨
是否还有其他方法可以简化从对象中删除特定属性的操作。舍友提出了一个对象属性简化的问题,询问在不删除属性的情况下,如何简化从对象中删除特定属性的操作。02解决方案最初,我曾考虑过不直接删除属性,而是仅保留业务所需的那些。…...
