算法——双指针(day2)

目录

 202.快乐数

题目解析:

算法解析:

 代码:

11.盛最多水的容器

题目解析:

算法解析:

代码:


 202.快乐数

力扣链接:202.快乐数

题目解析:

本文中最重要的一句话就是重复平方和过程直到数字变为1,也可能是无限循环始终不变1.

这里我们可以画出示例图来分析。

我们最终可以发现只有两种情况,要么内部循环都为1,要么内部循环不为1.而二者共同点就在于一定会循环~

算法解析:

这里我们还是可以使用双指针的解法——快慢指针~相信大家不会陌生,快慢指针通过慢走一步快走两步的特点可以很快判断出来是否成环(即循环)。而本题我们不需要验证是否循环,只需要在快慢指针相遇的时候(无限循环中)判断环中数字是否为1即可~

 代码:

class Solution {
public://处理平方和int sumsum(int n){int sum = 0;while (n){int a = n % 10;sum += a * a;n /= 10;}return sum;}bool isHappy(int n) {//初始化优先错开int slow = n;int fast = sumsum(n);//快慢指针相遇while (fast != slow){slow = sumsum(slow);fast = sumsum(sumsum(fast));}return slow == 1;}
};

11.盛最多水的容器

11. 盛最多水的容器 - 力扣(LeetCode)

题目解析:

通过示例图可以我们看出基本计算为:选择的下标相减 X 两数间最小数

算法解析:

我们先划出一个小范围,然后尝试在该范围里面选出最大容量。我们优先选取两端数,这样可以保证长度是最长的,然后我们再尝试缩短范围(拿宽短的尝试比较),这样我们可以得出两种结果:

要么是 长度和宽度都减小了(2---4),要么是长度减小宽度不变(5--4).最终的容量都不如最开始v1(6--4)的大,因此我们可以直接排除4,因为在后续的比较中毫无意义。

当我们知道规律后就很简单了,列出双指针指向两端。记录每一次所指向的两个数对应的容量,然后两数谁小谁就先缩进一位继续比较,直到相遇。最后我们再对比所有记录的容量选出最大的那个即可~ 

代码:

class Solution {
public:int maxArea(vector<int>& height) {int n = height.size();int left = 0;int right = n-1;int sum = 0;int sum1 = 0;while(left<right){sum1 = min(height[left],height[right])*(right-left);if(height[right]>=height[left]){left++;}else{right--;}sum = max(sum,sum1);}return sum;}
};

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

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

相关文章

AI自动生成PPT哪个软件好?高效制作PPT优选这4个

7.15初伏的到来&#xff0c;也宣告三伏天的酷热正式拉开序幕~在这个传统的节气里&#xff0c;人们以各种方式避暑纳凉&#xff0c;享受夏日的悠闲时光。 而除了传统的避暑活动&#xff0c;我们还可以用一种新颖的方式记录和分享这份夏日的清凉——那就是通过PPT的方式将这一传…

班迪录屏Bandicam使用详解

Bandicam是一款功能强大的视频录制工具&#xff0c;录制出来的视频体积较小且内容清晰度较高&#xff0c;平时录屏、录游戏都非常合适。可以全屏幕录制&#xff0c;也可以自定义录制区域&#xff0c;还可以在录制时添加自定义的logo&#xff0c;并且有个绘制模式&#xff0c;适…

学习008-01-02 Define the Data Model and Set the Initial Data(定义数据模型并设置初始数据 )

Define the Data Model and Set the Initial Data&#xff08;定义数据模型并设置初始数据 &#xff09; This topic explains how to implement entity classes for your application. It also describes the basics of automatic user interface construction based on a da…

基于AT89C51单片机的多功能自行车测速计程器(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于AT89C51单片机的多功能自行车测速计程器的详情介绍&#xff0c;如果对您有帮助的话&#xff0c;还请关注一下哦&#xff0c;如果有资源方面的需要可以联系我。 目录 选题背景 原理图 PCB图 仿真图 代码 系统论文 资源下载 选题背景 美丽的夜晚&…

JavaScript:移除元素

这是原题&#xff1a;给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k&#xff0c;要通过此题&#xff0c;您需要执行以下操…

【PyTorch][chapter 26][李宏毅深度学习][attention-2]

前言&#xff1a; Multi-Head Attention 主要作用&#xff1a;将Q,K,V向量分成多个头&#xff0c;形成多个子语义空间&#xff0c;可以让模型去关注不同维度语义空间的信息 目录&#xff1a; attention 机制 Multi-Head Attention 一 attention 注意力 Self-Attention&#x…

什么是im即时通讯?WorkPlus im即时通讯私有化部署安全可控

IM即时通讯是Instant Messaging的缩写&#xff0c;指的是一种实时的、即时的电子信息交流方式&#xff0c;也被称为即时通讯。它通过互联网和移动通信网络&#xff0c;使用户能够及时交换文本消息、语音通话、视频通话、文件共享等信息。而WorkPlus im即时通讯私有化部署则提供…

防火墙--双机热备

目录 双击热备作用 防火墙和路由器备份不同之处 如何连线 双机 热备 冷备 VRRP VGMP&#xff08;华为私有协议&#xff09; 场景解释 VGMP作用过程 主备的形成场景 接口故障的切换场景 整机故障 原主设备故障恢复的场景 如果没有开启抢占 如果开启了抢占 负载分…

对红酒品质进行数据分析(python)

http://t.csdnimg.cn/UWg2S 数据来源于这篇博客&#xff0c;直接下载好csv文件。 这篇内容均在VScode的jupyter notebook上完成&#xff0c;操作可以看我的另一篇博客&#xff1a;http://t.csdnimg.cn/69sDJ 一、准备工作 1. 导入数据库 #功能是可以内嵌绘图&#xff0c;并…

纯硬件一键开关机电路的工作原理

这是一个一键开关机电路: 当按一下按键然后松开&#xff0c;MOS管导通&#xff0c;VOUT等于电源电压; 当再次按一下按键然后松开&#xff0c;MOS管关闭&#xff0c;VOUT等于0; 下面来分析一下这个电路的工作原理。上电后&#xff0c;输入电压通过R1和R2给电容充电&#xff0c;最…

继承和多态常见的面试问题

文章目录 概念问答 概念 下面哪种面向对象的方法可以让你变得富有( A) A: 继承 B: 封装 C: 多态 D: 抽象 (D )是面向对象程序设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关&#xff0c; 而对方法的调用则可以关联于具体的对象。 A: 继承 B: 模板 C: 对象的…

如何让公众号文章排版变的高大上?

有的时候&#xff0c;你可能会疑惑&#xff0c;为什么你写的文章没人看&#xff1f;明明投入很多精力在标题和文章内容上&#xff0c;但收效甚微。 有一个关键性的因素可能被你忽略了&#xff0c;那就是排版&#xff0c;文章没有排版&#xff0c;无论你的内容再怎么精彩&#x…

力扣622.设计循环队列

力扣622.设计循环队列 通过数组索引构建一个虚拟的首尾相连的环当front rear时 队列为空当front rear 1时 队列为满 (最后一位不存) class MyCircularQueue {int front;int rear;int capacity;vector<int> elements;public:MyCircularQueue(int k) {//最后一位不存…

智能化革新:智能AI如何助力生产力发展的未来与应用

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 前言 在当今这个科技飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为了推动生产力发展的重要力量。AI技…

2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(省赛)

RC-u1 热҈热҈热҈ 分数 10 全屏浏览 切换布局 作者 DAI, Longao 单位 杭州百腾教育科技有限公司 热҈热҈热҈……最近热得打的字都出汗了&#xff01; 幸好某连锁餐厅开启了气温大于等于 35 度即可获得一杯免费雪碧的活动。但不知为何&#xff0c;在每个星期四的时候&#x…

React的usestate设置了值后马上打印获取不到最新值

我们在使用usestate有时候设置了值后&#xff0c;我们想要更新一些值&#xff0c;这时候&#xff0c;我们要想要马上获取这个值去做一些处理&#xff0c;发现获取不到&#xff0c;这是为什么呢&#xff1f; 效果如下&#xff1a; 1、原因如下 在React中,当你使用useState钩子…

基于STC89C51单片机的烟雾报警器设计(煤气火灾检测报警)(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于STC89C51单片机的烟雾报警器设计的详情介绍&#xff0c;如果对您有帮助的话&#xff0c;还请关注一下哦&#xff0c;如果有资源方面的需要可以联系我。 目录 摘要 原理图 实物图 仿真图 元件清单 代码 系统论文 资源下载 摘要 随着现代家庭用火、…

navicat15已连接忘记密码

1.导出链接 2.使用文本打开 connections.ncx UserName"root" PasswordXXXX 3.复制加密密码&#xff0c;在线解密 代码在线运行 - 在线工具 php解密代码 <?php class NavicatPassword {protected $version 0;protected $aesKey libcckeylibcckey;protected…

C语言学习笔记[26]:循环语句do...while①

do...while语句 do...while的语法格式 do循环语句; while(表达式); 用do...while语句实现打印0~10 #include <stdio.h>int main() {int i 0;do{printf("%d\n", i);i;} while (i < 10);return 0; } do...while是先进行一次循环以后&#xff0c;再进行判…

R语言包AMORE安装报错问题以及RStudio与Rtools环境配置

在使用R语言进行AMORE安装时会遇到报错&#xff0c;这时候需要采用解决办法&#xff1a; AMORE包安装&#xff0c;需要离线官网下载安装包&#xff1a; Index of /src/contrib/Archive/AMORE (r-project.org)https://cran.r-project.org/src/contrib/Archive/AMORE/ 一、出现…