【算法刷题】Day8

文章目录

  • 202. 快乐数
    • 解法:
  • 11. 盛最多水的容器
    • 解法:

202. 快乐数

在这里插入图片描述
在这里插入图片描述
原题链接


拿到题,我们先看题干
把一个整数替换为每个位置上的数字平方和,有两种情况:

  1. 重复这个过程始终不到 1(无限死循环)
  2. 结果变成 1(快乐数)

接下来我们画图看一下是不是这两种情况
在这里插入图片描述
在这里插入图片描述
画完图我们就可以发现,这个跟曾经数据结构学过的判断链表是否有环非常相似
判断是不是快乐数,就是看入环的数字是几,如果是 1 那么就是快乐数

解法:

(快慢双指针)

  1. 定义快慢双指针 slow 和 fast
  2. 慢指针每次向后移动一位
    快指针每次向后移动两位
  3. 判断相遇的值是不是 1
class Solution {public int isSum(int n) {int sum = 0;while(n != 0) {int t = n % 10;sum += t*t;n = n / 10;}return sum;}public boolean isHappy(int n) {int slow = n;int fast = isSum(n);while(slow != fast) {slow = isSum(slow);fast = isSum(isSum(fast));}return slow == 1;}
}

在这里插入图片描述

11. 盛最多水的容器

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
[原题链接](https://leetcode.cn/problems/container-with-most-water/


先看题干,貌似就是求体积,再看示例,就是求两段之间最小的那个值 乘 两段之间的差值

解法:

一:(暴力枚举)
运用两个 for 循环进行枚举
但是时间复杂度为 O(n2)
会导致时间溢出

二:(利用单调性,使用双指针)
这里我们先看一下什么是单调性
在这里插入图片描述
先用 [ 6, 2, 5, 4 ] 来举例
6 > 4
所以如果 4 不变,从右向左一个一个计算体积
4 * 3 = 12
2 * 2 = 4
4 * 1 = 4
发现只有第一个的体积是最大的
这样我们可以直接删去 4 ,从 6 开始向 5 进行遍历
这就是单调性

利用这样的规律,我们在看原数组,我们就可以这样解题
在这里插入图片描述

  1. 定义双指针 left 和 right
  2. 把 最大的体积存放到 ret 中
  3. left 和 right 比较大小
    left < right : left ++;
    left > right : right–;
  4. 直到 left 和 right 相遇
class Solution {public int maxArea(int[] height) {int left = 0;int right = height.length-1;int ret = 0;while(left < right) {int v = Math.min(height[left],height[right]) * (right - left);ret = Math.max(ret,v);if(height[left] < height[right]) {left++;}else {right--;}   }return ret;}
}

在这里插入图片描述

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

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

相关文章

python基于YOLOv7系列模型【yolov7-tiny/yolov7/yolov7x】开发构建钢铁产业产品智能自动化检测识别系统

在前文的项目开发实践中&#xff0c;我们已经以钢铁产业产品缺陷检测数据场景为基准&#xff0c;陆续开发构建了多款目标检测模型&#xff0c;感兴趣的话可以自行阅读即可。 《YOLOv3老矣尚能战否&#xff1f;基于YOLOv3开发构建建钢铁产业产品智能自动化检测识别系统&#xf…

seccomp学习 (3)

文章目录 0x06. 其他B. execveat (nr322)C. sendto recvfrom (nr44, 45)D. sendmsg recvmsg (nr46, 47)E. io_uring系列 (nr425,426,427) 本文继续上一篇文章继续介绍seccomp与系统调用的那些事~~~ 0x06. 其他 B. execveat (nr322) long sys_execveat(int dfd, const char…

专业的事交给专业的公司来做,文件销毁 数据销毁 硬盘销毁

在当今信息化社会&#xff0c;数据和文件已经成为企业和个人生活中不可或缺的一部分。然而&#xff0c;随着数据量的不断增长&#xff0c;如何确保数据的安全性和隐私性成为了一个亟待解决的问题。为了解决这个问题&#xff0c;文件销毁、硬盘销毁、数据销毁和物料销毁等技术应…

firewall-cmd --list-all命令详解

firewall-cmd --list-all 可以用于列出系统中所有防火墙规则的详细信息&#xff0c;包括已激活的防火墙区域、服务和端口等。 这些信息能够帮助您了解系统中当前已配置的防火墙规则&#xff0c;以及允许或禁止访问的服务和端口等相关信息。 [rootlocalhost ~]# firewall-cmd -…

人工智能与我们的生活

人工智能对我们的生活影响有多大 1. 人工智能的领域 人工智能涉及的领域广泛&#xff0c;包括但不限于&#xff1a; a. 医疗保健领域 人工智能在医疗诊断、药物研发、患者管理等方面发挥了重要作用。医疗影像分析、基因组学研究等都受益于人工智能技术&#xff0c;为医学领…

Oracle连接和使用

5. Oracle连接和使用 5.1. sqlplus sqlplus作为甲骨文公司提供的一款本族工具产品,有着悠久的历史和积淀,它几乎伴随着Oracle数据库产生至今的整个生命周期,而且,还会继续和Oracle数据库产品相伴一直发展下去。该工具看似简单灵活的背后,却为广大用户使用Oracle数据库提…

无需部署服务器,如何结合内网穿透实现公网访问导航页工具Dashy

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 简介 Dashy 是一个开源的自托管的导航页配置服务&#xff0c;具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一些网站聚合起来放在一起&#xff0c;形成自己的导航…

【Python基础】协程(迭代器、生成器、协程、gevent介绍)

&#x1f308;欢迎来到Python专栏 &#x1f64b;&#x1f3fe;‍♀️作者介绍&#xff1a;前PLA队员 目前是一名普通本科大三的软件工程专业学生 &#x1f30f;IP坐标&#xff1a;湖北武汉 &#x1f349; 目前技术栈&#xff1a;C/C、Linux系统编程、计算机网络、数据结构、Mys…

MySQL数据库改名的三种方法

如果表是 MyISAM 那么可以直接去到数据库目录 mv 就可以。 Innodb完全不行&#xff0c;自己测试过&#xff0c;会提示相关表不存在。 第一种方法&#xff1a; RENAME database olddbname TO newdbname这个语法在 mysql-5.1.7 中被添加进来&#xff0c;到了mysql-5.1.23又去掉了…

[webpack] webpack 插件大全

clean-webpack-plugin 一个webpack插件&#xff0c;用来删除/清理你的构建文件夹 html-webpack-plugin 该插件将为你生成一个 HTML5 文件&#xff0c; 在 body 中使用 script 标签引入你所有 webpack 生成的 bundle js 文件 zip-webpack-plugin 该插件用来压缩所有文件成一…

Python爬虫遇到重定向URL问题时如何解决?

什么是重定向 重定向是指当用户请求一个URL时&#xff0c;服务器返回一个中断请求的URL的响应。这种情况通常发生在网站对URL进行了修改或者重定向到其他页面的情况下。其中&#xff0c;如果处理不当开发&#xff0c;可能会导致爬虫无法获取所需的数据&#xff0c;从而影响爬虫…

具有“真实触感”的动捕数据手套mhand pro,提供更精确的动作捕捉

随着人工智能的普及和万物互联&#xff0c;vr虚拟技术备受关注&#xff0c;为了更加真实的虚拟现实交互体验&#xff0c;动捕数据手套的使用逐渐普及&#xff0c;vr手套可以实时采集各手指关节运动数据&#xff0c;使用动捕数据手套可以在虚拟现实的场景中实现对真实手部运动的…

H3C堆叠和聚合配置

因ensp做不了堆叠&#xff0c;所以用了华三的模拟器HCL&#xff0c;下载地址&#xff1a;H3C网络设备模拟器官方免费下载-新华三集团-H3C 拓朴如下&#xff1a; 1、堆叠配置步骤如下&#xff1a; 1、S1和S2配置堆叠过程&#xff1a; [S1] irf domain 1 irf member 1 priority …

如何通过CRM实现客户关系管理?

——“小米加步枪是打不赢现代化战争的。” ——”CRM系统已成为企业掘金未来的必备。“ 数字化转型已经成为了企业发展的重要方向&#xff0c;然而数字化转型不仅仅是把线下搬到线上&#xff0c;更重要的是&#xff0c;真正的数字化转型应该以客户的连接和客户的数字化作为突破…

[backup@waifu.club].mkp勒索病毒数据怎么处理|数据解密恢复

导言&#xff1a; 随着网络威胁不断演变&#xff0c;[datastorecyberfear.com].mkp、[backupwaifu.club].mkp、[hendersoncock.li].mkp、[myersairmail.cc].mkp勒索病毒带来的挑战也在不断升级。本文将突出与以往不同的一些点&#xff0c;旨在提供更为前瞻和全面的[datastorec…

『heqingchun-Ubuntu系统+x86架构+编译安装OpenCV+带有nvidia硬件加速』

Ubuntu系统x86架构编译安装OpenCV带有nvidia硬件加速 一、准备文件 1.OpenCV源码下载 (1)opencv-4.5.5.zip 官网下载 网址&#xff1a; https://github.com/opencv/opencv/tree/4.5.5操作&#xff1a; 点击"Code"下的"Download ZIP" 下载得到opencv-4…

数据治理与数据入表、数据交易有什么关系?

数据作为关键生产要素&#xff0c;其乘数效应的发挥离不开数据要素保有量的丰富程度、数据要素市场的发展成熟度以及数据要素应用路径的清晰度。财政部2023年8月21日发布了《企业数据资源相关会计处理暂行规定》&#xff0c;标志着企业数据资源入表迈出了0到1的关键一步。 与此…

义无反顾马督工,Bert-vits2V210复刻马督工实践(Python3.10)

Bert-vits2更新了版本V210&#xff0c;修正了日/英的bert对齐问题&#xff0c;效果进一步优化&#xff1b;对底模使用的数据进行优化和加量&#xff0c;减少finetune失败以及电音的可能性&#xff1b;日语bert更换了模型&#xff0c;完善了多语言推理。 更多情报请参考Bert-vi…

【Openstack Train安装】五、Memcached/Etcd安装

本文介绍Memcached/Etcd安装步骤&#xff0c;Memcached/Etcd仅需在控制节点安装。 在按照本教程安装之前&#xff0c;请确保完成以下配置&#xff1a; 【Openstack Train安装】一、虚拟机创建 【Openstack Train安装】二、NTP安装 【Openstack Train安装】三、openstack安装…

PC端ssh连接到Android手机的Termux部署http服务器

1. 下载并安装Termux至Android手机 Releases termux/termux-app (github.com) https://github.com/termux/termux-app/releases 2. 手机端启动Termux&#xff0c;安装openssh #更新仓库 pkg up pkg install openssh #安装好后&#xff0c;启动sshd sshd问题1&#xff1a;如…