LeetCode题:581. 最短无序连续子数组,242. 有效的字母异位词,202. 快乐数

581. 最短无序连续子数组

题目要求:

581. 最短无序连续子数组

给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。

请你找出符合题意的 最短 子数组,并输出它的长度。

示例 1:

输入:nums = [2,6,4,8,10,9,15]
输出:5
解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。

示例 2:

输入:nums = [1,2,3,4]
输出:0

示例 3:

输入:nums = [1]
输出:0

提示:

  • 1 <= nums.length <= 104
  • -105 <= nums[i] <= 105

解题思路:

我们定义一个数组num,拷贝原数组,然后对num进行升序排序,再和原数组作比较,定义left为左边第一个和原数组不相等的下标,定义right为右边第一个和原数组不相等的下标,这样我们就能找到最短子数组了,返回right - left + 1。

代码:

class Solution {public int findUnsortedSubarray(int[] nums) {int len = nums.length;if(len == 1) {return 0;}int[] num = Arrays.copyOf(nums, len);Arrays.sort(num);//左边界int left = 0;//右边界int right = len - 1;//找出左边界第一个不同的下标for(int i = 0; i < len; i++) {if(num[i] == nums[i]) {left++;} else {break;}}//遍历完了,left == len,即这个数组是有序的,则返回0if(left == len) return 0;//找右边界第一个不相等的下标for(int i = len - 1; i >= 0; i--) {if(num[i] == nums[i]) {right--;} else {break;}}return right - left + 1;}
}

242. 有效的字母异位词

题目要求:

242. 有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。

示例 1:

输入: s = "anagram", t = "nagaram"
输出: true

示例 2:

输入: s = "rat", t = "car"
输出: false

提示:

  • 1 <= s.length, t.length <= 5 * 104
  • s 和 t 仅包含小写字母

解题思路:

定义两个数组,这两数组,每一个下标都是存放26字母的其中唯一的一个下标,分别存题目中两字符的字母个数,当遍历完 t 和 s 字符串,就比较这两数组的每一个下标都是否相等,相等就符合题目要求,不相等就不符合。

代码:

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

202. 快乐数

题目要求:

202. 快乐数

编写一个算法来判断一个数 n 是不是快乐数。

「快乐数」 定义为:

  • 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
  • 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
  • 如果这个过程 结果为 1,那么这个数就是快乐数。

如果 n 是 快乐数 就返回 true ;不是,则返回 false 。

示例 1:

输入:n = 19
输出:true
解释:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1

示例 2:

输入:n = 2
输出:false

提示:

  • 1 <= n <= 231 - 1

解题思路:

题目已经告诉我们给定的n,它要么循环计算后的结果会是1,是1就返回true,要么计算的结果是无限循环的,那么肯定会计算过程中肯定会出现相同的结果,那么我们就用hash表,存放这些计算结果,如果计算的结果是1,就返回true,要是有重复出现的数字,就返回false。

代码:

class Solution {public boolean isHappy(int n) {Set<Integer> set = new HashSet<>();int result = 0;int flg;do {while(n > 0) {int tmp = n % 10;result += tmp * tmp;n /= 10;}if(!set.contains(result)) {set.add(result);} else {return false;}n = result;flg = result;result = 0;} while (flg != 1);return true;}
}

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

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

相关文章

【Linux】安卓端JuiceSSH结合内网穿透实现远程连接服务器

目录 前言1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 前言 处于内网的虚拟机如何被外网访问呢&#xff1f;如何手机就能访问虚拟机呢&#xff1f; 本文介绍 cpolarJuiceSSH 实现手机端远程连接Linux虚拟…

4.golang中map的增删改查

map 一种无序的键值对, 它是数据结构 hash 表的一种实现方式。map工作方式就是&#xff1a;定义键和值&#xff0c;并且可以获取&#xff0c;设置和删除其中的值。 声明 // 使用关键字 map 来声明 bMap : map[string]int{"key1": 18} // 使用make来声明 cMap : mak…

elk日志分析系统:

elk日志分析系统: elk是一套完整的日志集中处理方案&#xff0c;由三个开源的软件简称组成&#xff1b; E:Easticsearch 简称ES是一个开源的&#xff0c;分布式的存储检索引擎&#xff0c;&#xff08;索引型的非关系数据库&#xff09;存储日志 由java代码开发的&#xff0…

CSC公派博士后|管理学老师赴韩国首尔大学达成目标

J老师自身背景正好卡在CSC公派博士后申报条件的边缘&#xff0c;为增大通过概率&#xff0c;其提出优选亚洲范围内的世界知名高校、专业相符、2年博士后职位的要求。最终我们用韩国首尔大学的邀请函助其顺利获批CSC&#xff0c;实现了所有既定目标。 J老师背景&#xff1a; 申…

24. 两两交换链表中的节点

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;24. 两两交换链表中的节点 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 遍历时交换即可。 解题代码&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* i…

外贸企业如何搭建合适的B2B独立站

随着全球电子商务的快速发展&#xff0c;越来越多的外贸企业开始关注并投入到B2B独立站的搭建中。B2B独立站不仅可以提升企业的品牌形象&#xff0c;还可以拓展销售渠道&#xff0c;提高销售效率。然而&#xff0c;如何搭建一个适合的外贸B2B独立站&#xff0c;却需要从多个方面…

开发者在分发平台上传和发布APP的步骤

注册账号&#xff1a;首先&#xff0c;开发者需要在分发平台上注册一个账号。这个账号将用于管理你的应用程序和进行相关操作。完善信息&#xff1a;注册完成后&#xff0c;开发者需要完善个人信息&#xff0c;包括姓名、联系方式等。这将有助于建立信任关系&#xff0c;并与用…

【Tiny_CD】Tiny_CD变化检测网络详解(含python代码)

题目:TinyCD: A (Not So) Deep Learning Model For Change Detection 论文:paper 代码:code 目录 🍟 🍟1.摘要 🍗🍗 2.贡献 🍖🍖 3.网络结构

前端必学——实现电商图片放大镜效果(附代码)

放大镜可以说是前端人必须学会的程序之一,今天的案例为大家展示一下怎么实现放大镜的效果&#xff01; 效果图展示 整个效果就是当鼠标放到展示图上的时候&#xff0c;会出现一个遮罩层以及弹出来一个框展示一个详情图&#xff0c;并且鼠标移动的时候详情图跟着移动&#xff0…

android 动态创建selector状态选择器 动态创建Drawable

最近在做一个使用接口返回的字符串&#xff1a;"#ff0000" 来动态设置drawable背景颜色与动态设置状态选择器selector的需求&#xff0c;之前写习惯了shape的xml&#xff0c;还是第一次写动态的&#xff0c;有点搞笑&#xff0c;搞笑的是自己没写过&#xff0c;不知道…

家乡旅游推广软文怎么写?媒介盒子分享

随着各地政策的放开&#xff0c;旅行已经成为很多消费者生活中不可缺少的一项&#xff0c;各地景区也在宣传上纷纷发力&#xff0c;希望能够吸引游客。只要文案写得好&#xff0c;没有景点火不了&#xff0c;今天媒介盒子就来和大家聊聊&#xff1a;家乡旅游推广软文怎么写。 一…

独乐乐不如众乐乐(二)-某汽车零部件厂商IC EMC企业规范

前言&#xff1a;该汽车零部件厂商关于IC EMC的规范可能是小编看过的企业标准里要求最明确的一份企业标准了&#xff0c;充分说明了标准方法不是死的&#xff0c;可以灵活应用。 先看看这份规范的抬头&#xff1a; 与其他企业规范一样&#xff0c;该汽车零部件厂商的IC EMC规范…

TDA4开发环境Docker化

文章目录 背景1. TDA4X Linux SDK编译环境镜像构建1.1 安装SDK1.2 验证制卡1.2.1 出现的问题:1.3 验证编译1.3.1 出现的问题2. TDA4X Linux-RT SDK编译环境镜像构建2.1 安装SDK2.2 出现的问题参考背景 开始阅读本篇前,假设你已经对docker有了一定了解,且有过docker换件搭建…

1、Linux_介绍和安装

1. Linux概述 Linux&#xff1a;是基于Unix的一个开源、免费的操作系统&#xff0c;其稳定性、安全性、处理多并发能力强&#xff0c;目前大多数企业级应用甚至是集群项目都部署运行在linux操作系统之上&#xff0c;在我国软件公司得到广泛的使用 Unix&#xff1a;是一个强大…

聊聊如何进行代码混淆加固

​ 聊聊如何进行代码混淆 前言什么是代码混淆代码混淆&#xff0c;是指将计算机程序的代码&#xff0c;转换成一种功能上等价&#xff0c;但是难于阅读和理解的形式的行为。 代码混淆常见手段1、名称混淆 将有意义的类&#xff0c;字段、方法名称更改为无意义的字符串。生成…

Java/Android 各类型数据构造和各类型数据解析

Java/Android 各类型数据构造和各类型数据解析 1.如何构造/解析{"key":"value","key":"value","key":"value"}jsonString1)json解析2)fastjson解析3)Gson解析4)遍历key值解析2.如何构造/解析[{"key&q…

CSGO搬砖还能做吗?CSGO饰品未来走势如何?

steam/csgo搬砖项目真能月入过万吗&#xff1f;到底真的假的&#xff1f; 如何看待CSGO饰品市场的整体走向&#xff1f; 从整体来说&#xff0c;CSGO的饰品市场与规模肯定会持续不断的上升&#xff0c;大盘不会发生特别大的波动&#xff0c;目前处于稳定期&#xff01;&…

【C++干货铺】非类型模板 | 模板特化 | 模板分离编译

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 非类型模板参数 模板的特化 什么是模板特化&#xff1f; 函数模板特化 类模板的特化 全特化 偏特化 模板的分离编译 什么是分离编译&#xff1f; 模板的…

单细胞featureplot美化修改-自定义修改图片样式-umap密度图画等高线

大家好&#xff0c;欢迎来的单细胞图片美化专辑 1.如何修改seruat对象的行名 2.FeaturePlot如何把所有阳性表达的spot放到图的前面 在单细胞实践中&#xff0c;我发现不同的客户对画图需求并不一致&#xff0c;这可能和个人审美有关吧。本专辑着重于各种各样的单细胞个性化绘…

Python虚拟环境

Python虚拟环境 介绍 虚拟环境&#xff08;virtual environment&#xff09;&#xff0c;它是一个虚拟化&#xff0c;从电脑独立开辟出来的环境。通俗的来讲&#xff0c;虚拟环境就是借助虚拟机来把一部分内容独立出来&#xff0c;我们把这部分独立出来的东西称作“容器”&am…