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

【leetcode】第三章 哈希表part01

242.有效的字母异位词

  • 使用HashMap
public boolean isAnagram(String s, String t) {HashMap<Character,Integer> map = new HashMap();int sLen = s.length();int tLen = t.length();if (sLen != tLen) return false;// 统计词频for (int i = 0; i < s.length(); i++) {char ch = s.charAt(i);map.put(ch,map.getOrDefault(ch,0)+1);}//输入: s = "anagram", t = "nagaram"//输出: true// 若某个字符频数小于0,则绝对不是异位词for (int i = 0; i < t.length(); i++) {char c = t.charAt(i);if (map.containsKey(c)) {if (map.get(c) <= 0) {return false;}map.put(c,map.get(c)-1);}else {return false;}}return true;
}

349. 两个数组的交集

  • 使用map方法
public int[] intersection(int[] nums1, int[] nums2) {// 找到长度小的数组int size1 = nums1.length;int size2 = nums2.length;if (size1 > size2) {return intersectionNum(nums2,nums1);}else {return intersectionNum(nums1,nums2);}
}public int[] intersectionNum(int[] mapNum, int[] computeNum) {List<Integer> res = new ArrayList<>();HashMap<Integer,Integer> map = new HashMap<>();for (int i = 0; i < mapNum.length; i++) {map.put(mapNum[i],map.getOrDefault(mapNum[i],0)+1);}for (int i = 0; i < computeNum.length; i++) {if (map.containsKey(computeNum[i]) && map.get(computeNum[i])!=-1) {map.put(computeNum[i],-1);res.add(computeNum[i]);}}return res.stream().mapToInt(Integer::intValue).toArray();
}
  • 使用set方法
public int[] intersection(int[] nums1, int[] nums2) {List<Integer> res = new ArrayList<>();HashSet<Integer> set = new HashSet<>();for(int num : nums1) {set.add(num);}for (int num :nums2) {if (set.contains(num)) {set.remove(num);res.add(num);}}return res.stream().mapToInt(Integer::intValue).toArray();}

202. 快乐数

public int getSum(int n) {int sum = 0;while (n != 0) {int bit = n % 10; // 9n = n / 10; // 1sum += Math.pow(bit,2); // 0 + 9}return sum;}
public boolean isHappy(int n) {// 无限循环代表会重复出现该sumHashSet<Integer> set = new HashSet<>();while (n != 1 && !set.contains(n)) {set.add(n);n = getSum(n);}return n == 1;
}
public int getSum(int n) {int sum = 0;while (n != 0) {int bit = n % 10; // 9n = n / 10; // 1sum += Math.pow(bit,2); // 0 + 9}return sum;}
public boolean isHappy(int n) {// 无限循环代表会重复出现该sumHashSet<Integer> set = new HashSet<>();while (true){if (n == 1) return true;if (set.contains(n)) return false;set.add(n);n = getSum(n);}
}

1. 两数之和

public int[] twoSum(int[] nums, int target) {HashMap<Integer,Integer> map = new HashMap<>();//输入:nums = [2,7,11,15], target = 9//输出:[0,1]//解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。int[] res = new int[2];for (int i = 0; i < nums.length; i++) {if (map.containsKey(target-nums[i])) {res[0] = map.get(target-nums[i]);res[1] = i;}map.put(nums[i],i);}return res;}

相关文章:

【leetcode】第三章 哈希表part01

242.有效的字母异位词 使用HashMap public boolean isAnagram(String s, String t) {HashMap<Character,Integer> map new HashMap();int sLen s.length();int tLen t.length();if (sLen ! tLen) return false;// 统计词频for (int i 0; i < s.length(); i) {ch…...

Docker中Tomcat部署步骤

第一次访问没有东西。...

pycharm 安装库

这是另一种方式。 搜索到的安装库的方式多数是&#xff1a;在桌面上winR键运行终端&#xff0c;输入命令&#xff0c;安装不了&#xff0c;发现安装不了。 1、打开pycharm&#xff1b; 2、软件下部的Terminal终端(需要运行一个代码才能出现&#xff0c;任何代码都可)&#xf…...

使用 Ploomber、Arima、Python 和 Slurm 进行时间序列预测

推荐&#xff1a;使用 NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景 简短的笔记本说明 笔记本由 8 个任务组成&#xff0c;如下图所示。它包括建模的大多数基本步骤 - 获取数据清理、拟合、超参数调优、验证和可视化。作为捷径&#xff0c;我拿起笔记本并使用Soorgeon工具…...

springboot第35集:微服务与flutter安卓App开发

Google Playplay.google.com/apps/publis…[1]应用宝open.qq.com/[2]百度手机助手app.baidu.com/[3]360 手机助手dev.360.cn/[4]vivo 应用商店dev.vivo.com.cn/[5]OPPO 软件商店&#xff08;一加&#xff09;open.oppomobile.com/[6]小米应用商店dev.mi.com/[7]华为应用市场dev…...

java 把list转成json

在Java中&#xff0c;将List转换成JSON格式是非常常见的任务。JSON是一种轻巧的数据交换格式&#xff0c;非常适合于Web应用程序&#xff0c;特别是前端开发。 使用Java将List转换成JSON格式的最简单方法是通过JSON库。最常用的JSON库是 Jackson&#xff0c;它提供了快速&…...

R语言实现随机生存森林(2)

library(survival) library(randomForestSRC) help(package"randomForestSRC") #构建普通的随机生存森林 data(cancer,package"survival") lung$status<-lung$status-1 rfsrc.fit1 <- rfsrc(Surv(time, status) ~ ., lung,ntree 100,block.size 1,…...

泛型类接口方法学习

一、泛型 1 概念 泛型(Generics)&#xff0c;广泛的类型。最大用途是给集合容器添加标签&#xff0c;让开发人员知道容器里面放到是什么类型&#xff0c;并且自动对放入集合的元素进行类型检查。 类比实参和形参&#xff0c;我们在对方法中的变量操作时&#xff0c;并没有指…...

Docker自动化部署安装(十)之安装SonarQube

这里选择的是&#xff1a; sonarqube:9.1.0-community (推荐使用) postgres:9.6.23 数据库(sonarqube7.9及以后便不再支持mysql&#xff0c;版本太低的话里面的一些插件会下载不成功的) 1、docker-sonarqube.yml文件 version: 3 services:sonarqube:container_name: sonar…...

[QT/C++]如何得知鼠标事件是由触摸事件转换而来的,使得鼠标触摸事件分离

依据来源&#xff1a;https://doc.qt.io/qt-5/qml-qtquick-mouseevent.html 具体是在event事件或者mouse系列事件中捕获到鼠标事件后&#xff0c;用如下代码判断鼠标事件是否由触摸事件转换而来的 if(mouseEvent->source()Qt::MouseEventSynthesizedBySystem){qDebug()<&…...

消防态势标绘工具,为消防基层工作助力

背景介绍 无人机测绘技术在消防领域的应用越来越普及&#xff0c;高清的二维正射影像和倾斜摄影实景三维模型能为消防态势标绘提供高质量的素材&#xff0c;消防队急需一个简便易用的、能够基于这些二三维的高清地图成果进行态势标绘的工具软件&#xff0c;使得消防“六熟悉”…...

网络协议栈-基础知识

1、分层模型 1.1、OSI七层模型 1、OSI&#xff08;Open System Interconnection&#xff0c;开放系统互连&#xff09;七层网络模型称为开放式系统互联参考模型 &#xff0c;是一个逻辑上的定义&#xff0c;一个规范&#xff0c;它把网络从逻辑上分为了7层。 2、每一层都有相关…...

[Mongodb 5.0]聚合操作

本文对应Aggregation Operations — MongoDB Manual 正文 此章节主要介绍了Aggregation Pipeline&#xff0c;其实就是将若干个聚合操作放在管道中进行执行&#xff0c;每一个聚合操作的结果作为下一个聚合操作的输入&#xff0c;每个聚合指令被称为一个stage。 在正式开始学…...

Shell 变量

Shell 变量 定义变量时&#xff0c;变量名不加美元符号&#xff08;$&#xff0c;PHP语言中变量需要&#xff09;&#xff0c;如&#xff1a; your_name"runoob.com" 注意&#xff0c;变量名和等号之间不能有空格&#xff0c;这可能和你熟悉的所有编程语言都不一样…...

SRM订单管理:优化供应商关系

一、概述SRM订单管理的概念&#xff1a; SRM订单管理是指在供应商关系管理过程中&#xff0c;有效管理和控制订单的创建、处理和交付。它涉及与供应商之间的沟通、合作和协调&#xff0c;旨在实现订单的准确性、可靠性和及时性。 二、SRM订单管理的流程&#xff1a; 1. 订单创…...

Unity 实现2D地面挖洞!涂抹地形(碰撞部分,方法二)

文章目录 前言一、初始化虚拟点1.1点结构:1.2每个点有的状态:1.3生成点结构: 二、实例化边缘碰撞盒2.1计算生成边缘碰撞盒 三、涂抹部分3.1.虚拟点3.2.鼠标点3.3.内圈3.4.外圈 四、关于优化结语: 前言 老规矩先上效果图 继上一篇涂抹地形文章讲解发出后&#xff0c;有不少网友…...

简化Gerber数据传输过程丨GC PowerPlace简介

离线编程&#xff0c;保持高效 GC PowerPlace提供了客户驱动的增强功能和新功能&#xff0c;以简化Gerber数据传输过程。GC PowerPlace是汇编编程的焦点&#xff0c;它接受几乎任何来源的数据&#xff0c;并为大多数PCB制造应用程序生成程序和文件。 功能特征 01、主要特点 …...

rust关于项目结构包,Crate和mod和目录的组织

rust 最近开始学习rust语言。感觉这门语言相对java确实是难上很多。开几个文章把遇到的问题记录一下 rust关于包&#xff0c;Crate 关于包&#xff0c;Crate这块先看看官方书籍怎么说的 crate 是 Rust 在编译时最小的代码单位。如果你用 rustc 而不是 cargo 来编译一个文件…...

如何微调优化你的ChatGPT提示来提高对话质量

ChatGPT会话质量很大程度上取决于微调优化提示的艺术。本文旨在阐明微调提示的复杂性&#xff0c;以确保你可以充分发挥ChaGPT这一颠覆性工具的潜力。 与ChatGPT对话的关键部分是“提示”。即&#xff1a;你输入的问题或陈述&#xff0c;它决定了人工智能的响应。类似于引导对…...

微信小程序实现下拉刷新

一、设置微信小程序所有页面都可以下拉刷新 1、在app.json的"window"中进行配置 &#xff08;1&#xff09;把"backgroundTextStyle":“light"改为"backgroundTextStyle”:“dark” &#xff08;2&#xff09;添加"enablePullDownRefresh…...

无障碍阅读助手:OpenClaw+Phi-3-vision-128k-instruct实时解析复杂图表

无障碍阅读助手&#xff1a;OpenClawPhi-3-vision-128k-instruct实时解析复杂图表 1. 为什么需要图表无障碍解析工具 去年帮一位视障朋友准备资格考试时&#xff0c;我深刻体会到技术文档中的图表是如何成为"信息黑洞"的。当他用屏幕阅读器听到"参见图3"…...

【AI实战项目】项目六:知识图谱构建与应用实战

分享一个大牛的人工智能教程。零基础&#xff01;通俗易懂&#xff01;风趣幽默&#xff01;希望你也加入到人工智能的队伍中来&#xff01;请轻击人工智能教程https://www.captainai.net/troubleshooter 项目背景&#xff1a; 在当今信息爆炸的时代&#xff0c;精准理解和应…...

云效流水线+K8s实战:Java微服务全自动部署与优化指南(手把手版)

1. 云效流水线入门&#xff1a;从零搭建Java微服务CI/CD管道 第一次接触云效流水线时&#xff0c;我像发现新大陆一样兴奋——原来部署可以这么简单&#xff01;记得去年团队还在用Jenkins手动打包部署&#xff0c;每次发版都要折腾到凌晨。现在用云效 K8s的组合&#xff0c;我…...

AI率超80%不要慌,这样处理比自己改快10倍

看到AI率80%&#xff0c;第一反应是慌乱&#xff0c;这完全正常。但慌乱之后&#xff0c;做什么决定很关键。 这篇文章只说一件事&#xff1a;为什么用工具处理比自己改快10倍&#xff0c;怎么用工具最快解决这个问题。 手动改写的真实速度 先来做一个计算。 一个写作速度正…...

COMSOL水力压裂岩石多裂隙损伤耦合模型及含离散裂隙Matlab建模文件

comsol水力压裂岩石多裂隙损伤耦合模型&#xff0c;含离散裂隙matlab建模文件地下三千米的页岩层正在经历一场暴力美学——高压水柱像手术刀般精准切开岩石&#xff0c;形成错综复杂的裂缝网络。这个看似野蛮的过程背后&#xff0c;隐藏着流-固-损伤三场耦合的精密舞蹈。今天我…...

反激电源输入电解电容选型避坑指南:从纹波电流到寿命计算的实战经验

反激电源输入电解电容选型避坑指南&#xff1a;从纹波电流到寿命计算的实战经验 在反激电源设计中&#xff0c;输入电解电容的选型往往被工程师视为"常规操作"&#xff0c;却不知这里暗藏玄机。我曾亲眼见证一个团队因电容选型不当导致整批电源在高温环境下寿命锐减5…...

【RAG】【vector_stores001】阿里云OpenSearch向量存储完整案例

本案例演示如何使用 LlamaIndex 与阿里云 OpenSearch 向量搜索版集成&#xff0c;实现向量存储和检索功能&#xff0c;用于构建基于文档的问答系统。1. 案例目标本案例的主要目标是&#xff1a;设置阿里云 OpenSearch 向量存储&#xff1a;配置 LlamaIndex 以使用阿里云 OpenSe…...

避开带宽陷阱:用低成本示波器搞定MIPI CSI-2信号的眼图与时序分析

避开带宽陷阱&#xff1a;用低成本示波器搞定MIPI CSI-2信号的眼图与时序分析 当你手头只有一台几百MHz带宽的示波器&#xff0c;却要分析动辄上Gbps的MIPI CSI-2高速信号时&#xff0c;是否感到无从下手&#xff1f;别担心&#xff0c;这篇文章将带你突破硬件限制&#xff0c;…...

Kubeflow v1.9.1 单机部署实战:用一台ECS搞定你的第一个MLOps平台(含A10 GPU调度)

Kubeflow v1.9.1 单机部署实战&#xff1a;用一台ECS搞定你的第一个MLOps平台&#xff08;含A10 GPU调度&#xff09; 在机器学习项目从实验走向生产的过程中&#xff0c;环境配置往往是第一个拦路虎。数据科学家习惯了Jupyter Notebook的交互式开发&#xff0c;但如何将模型无…...

Keil5避坑大全:如何解决中文路径、红叉问题和动态语法检查的误区

Keil5开发实战&#xff1a;彻底解决中文路径、红叉与语法检查三大难题 在嵌入式开发领域&#xff0c;Keil MDK作为ARM处理器的主流开发环境&#xff0c;其稳定性和专业性备受开发者信赖。但即使是这样一个成熟的工具链&#xff0c;在实际使用中仍会遇到几个高频痛点&#xff1a…...