算法训练(leetcode)二刷第五天 | 242. 有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

news/2024/10/21 22:39:22/

刷题记录

  • 242. 有效的字母异位词
  • 349. 两个数组的交集
  • 202. 快乐数
  • 1. 两数之和

242. 有效的字母异位词

leetcode题目地址

简单题,哈希表。数组长度为常量,因此空间复杂度为O(1)。

时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( 1 ) O(1) O(1)

// java
class Solution {public boolean isAnagram(String s, String t) {int[] hash = new int[26];for(int i=0; i<s.length(); i++){hash[s.charAt(i) - 'a']++;}for(int i=0; i<t.length(); i++){hash[t.charAt(i) - 'a']--;}for(int i=0; i<26; i++) if(hash[i]!=0) return false;return true;}
}

349. 两个数组的交集

leetcode题目地址

Set的使用。

时间复杂度: O ( n + m ) O(n+m) O(n+m)
空间复杂度: O ( n ) O(n) O(n)

// java
class Solution {public int[] intersection(int[] nums1, int[] nums2) {Set<Integer> hash = new HashSet<>();Set<Integer> list = new HashSet<>();for(int i=0; i<nums1.length; i++){hash.add(nums1[i]);}for(int i=0; i<nums2.length; i++){if(hash.contains(nums2[i])){list.add(nums2[i]);}}int[] res = new int[list.size()];int idx = 0;for(int x : list){res[idx++] = x;}return res;}
}

202. 快乐数

leetcode题目地址

多推几步就会发现,不是快乐数的数字经过计算会重复出现。因此借助hash表,重复出现则不是快乐数。

时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( n ) O(n) O(n)

// java
class Solution {public int cal(int n){int sum=0;while(n!=0){int x = n%10;n/=10;sum += x*x;}return sum;}public boolean isHappy(int n) {Map<Integer, Integer> hash = new HashMap<>();while(n!=1){if(hash.containsKey(n))return false;hash.put(n, 1);n = cal(n);}return true;}
}

1. 两数之和

leetcode题目地址

使用map记录已访问过的元素及对应下标,判断target-当前元素的值是否已访问,若已访问直接返回。

时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( n ) O(n) O(n)

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

http://www.ppmy.cn/news/1540917.html

相关文章

# Excel 操作大全

Excel 操作大全 文章目录 Excel 操作大全单元格文本换行计算SUM 单元格 文本换行 设置自动换行&#xff0c;在文本前面使用 AltEnter键即可换行文本前面可以输入空格实现段前缩进的效果 计算SUM 求和函数

Linux——shell 编程基础

基本介绍 shell 变量 环境变量&#xff08;也叫全局变量&#xff09; 位置参数变量 预定义变量 运算符 条件判断 流程控制 if 单分支&多分支 case 语句 for循环 while 循环 read 读取控制台输入 函数 系统函数 basename 获取文件名 dirname 获取目录路径 自定义函数 综…

WebSocket Secure (WSS)

使用代理浏览器时&#xff0c;WebSocket Secure (WSS) 链接失败可能由以下原因引起&#xff1a; 代理设置问题&#xff1a; 确保代理配置正确&#xff0c;包括代理地址和端口。有些代理服务器不支持WebSocket连接&#xff0c;您需要确认您的代理服务是否支持WSS。 SSL/TLS 问题…

用动态IP软件改变IP地址:探索原理与实用指南‌

在数字时代&#xff0c;网络的普及让我们的生活与工作更加便捷&#xff0c;但同时也带来了一系列新的挑战。地域限制、反爬虫机制等问题逐渐凸显&#xff0c;成为了许多网络用户和企业在享受网络便利时必须面对的难题。为了解决这些问题&#xff0c;动态IP软件应运而生&#xf…

数据库权限提升GetShell

数据库提权总结 - 随风kali - 博客园 (cnblogs.com) MySQL 漏洞利用与提权 | 国光 (sqlsec.com) sql注入getshell的几种方式 第99天&#xff1a;权限提升-数据库提权&口令获取&MYSQL&MSSQL&Oracle&MSF SQL注入拿shell的方式应该是通用的得到连接数据库…

每日一题——第一百一十八题

题目&#xff1a;进制转换合集 #pragma once #include<stdio.h> #include<ctype.h> #include<stdbool.h> #include<string>/// <summary> /// 将字符串表示的任意进制数转为十进制 /// </summary> /// <param name"str">…

全面了解 NGINX 的负载均衡算法

NGINX 提供多种负载均衡方法&#xff0c;以应对不同的流量分发需求。常用的算法包括&#xff1a;最少连接、最短时间、通用哈希、随机算法和 IP 哈希。这些负载均衡算法都通过独立指令来定义&#xff0c;每种算法都有其独特的应用场景。 以下负载均衡方法&#xff08;IP 哈希除…

VLMEvalKit多模态大模型评测工具源码解析

vlmeval/api和vlmeval/vlm文件夹下分别是api接口和本地运行的大模型的代码 基类都是base vlmeval/dataset是数据集处理代码 vlmeval/inference.py是推理代码 run.py的整个流程 1 vlmeval/api/base.py 主要为需要与外部API交互的系统提供了一个通用的框架 类属性 allowed_type…