算法基础学习Day2(双指针)

在这里插入图片描述

文章目录

  • 1.题目
    • 2.题目解答
    • 1.快乐数
      • 题目及题目解析
      • 算法学习
      • 代码提交
    • 2.题目2
      • 题目及题目解析
      • 算法学习
      • 代码提交

1.题目

  1. 202. 快乐数 - 力扣(LeetCode)
  2. 11. 盛最多水的容器 - 力扣(LeetCode)

2.题目解答

1.快乐数

题目及题目解析

image-20241206180703590

算法学习

70facd64758b7cb318653a499bdac65

无论是情况一还是情况二,都会进入到一个循环中

我们只需要判断链表是否有环:之前使用的是快慢双指针的方法,判断相遇时候的值即可

如何指向?

仍然不是真实的指针,而是用%10或者/10来取到数字计算和,通过计算的和来模拟快慢指针

我们可以先写一个求和函数

int Sum(int n) {int sum = 0;while (n) {int t = n % 10;sum += t * t;n /= 10;}return sum;}

后续通过调用Sum就可以来实现快慢指针了

bool isHappy(int n) {int slow = n, fast = Sum(n);while (slow != fast) {slow = Sum(slow);//慢指针走一步fast = Sum(Sum(fast));//快指针走两步}return slow == 1;}

代码提交

class Solution {
public:int Sum(int n) {int sum = 0;while (n) {int t = n % 10;sum += t * t;n /= 10;}return sum;}bool isHappy(int n) {int slow = n, fast = Sum(n);while (slow != fast) {slow = Sum(slow);fast = Sum(Sum(fast));}return slow == 1;}
};

2.题目2

题目及题目解析

image-20241206203049539

容器的容水量计算方法:V = 最小的那个边*中间相差的距离

算法学习

这里我们可以先用一下暴力解法:

class Solution {
public:int maxArea(vector<int>& height) {int utmost = 0;for (int i = 0; i < height.size(); i++) {for (int j = i + 1; j < height.size(); j++) {int sum = 0;if (height[i] < height[j]) {sum = height[i] * (j - i);} else {sum = height[j] * (j - i);}if (sum > utmost) {utmost = sum;}}}return utmost;}
};

当然是过不了的,时间复杂度过大了

image-20241206204419361

那么该如何解决呢?

image-20241206213726244

通过用两个指针将数组分开来算就可以从O(N*2)的时间复杂度转化为O(N)了

代码提交

class Solution {
public:int maxArea(vector<int>& height) {int left = 0, right = height.size() - 1, ret = 0;while (left < right) {int v = min(height[left], height[right]) * (right - left);ret = max(ret, v);// 移动指针if (height[left] < height[right])left++;elseright--;}return ret;}
};

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Web3与人工智能的跨界融合:数据隐私与去中心化的新机遇

随着Web3和人工智能&#xff08;AI&#xff09;技术的不断发展&#xff0c;两者的结合正在成为未来互联网的重要趋势。Web3代表着去中心化的未来&#xff0c;AI则提供了强大的智能化能力。当这两者结合时&#xff0c;不仅为数据隐私保护提供了新的解决方案&#xff0c;还推动了…

DevOps系统设计和技术选型

命名是一件痛苦的事情&#xff0c;除非你不想要一个好名字。 我正在做的这个管理系统叫什么合适&#xff0c;或者是什么类型的系统&#xff0c;想去想来不知所措&#xff0c;后来想想这么小的东西纠结什么&#xff0c;先从小的细节一点点来&#xff0c;能用就行&#xff0c;就用…

2024年华中杯数学建模A题太阳能路灯光伏板的朝向设计问题解题全过程文档及程序

2024年华中杯数学建模 A题 太阳能路灯光伏板的朝向设计问题 原题再现 太阳能路灯由太阳能电池板组件部分&#xff08;包括支架&#xff09;、LED灯头、控制箱&#xff08;包含控制器、蓄电池&#xff09;、市电辅助器和灯杆几部分构成。太阳能电池板通过支架固定在灯杆上端。…

sheng的学习笔记-AI-序列模型(Sequence Models),RNN,GRU,LSTM

Ai目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 基础知识 定义&#xff1a; 序列模型是输入输出均为序列数据的模型&#xff0c;它能够将输入序列数据转换为目标序列数据。常见的序列模型类型包括一对一、一对多、多对一、部分多对多和完全多对多。 重要的是需要有顺序…

《网络安全》相关知识点总结

第一章 安全现状及趋势 第二章 网络安全概述 2.1 信息保障阶段 信息保障技术框架IATF&#xff1a; 由美国国家安全局制定&#xff0c;提出“纵深防御策略” DiD&#xff08;Defense-in-Depth Strategy&#xff09; 在信息保障的概念下&#xff0c;信息安全保障的PDRR模型的内涵…

DApp浏览器能否集成在自己开发的DApp里?

答案是肯定的。在技术层面&#xff0c;DApp浏览器可以完全集成到你自己开发的DApp中&#xff0c;从而提供一个一体化的用户体验。本文将详细分析如何实现这一目标&#xff0c;以及其中的技术实现、优势和需要注意的问题。 一、什么是DApp浏览器&#xff1f; DApp浏览器是一种支…

MySQL--用户权限

1.使用root用户登录MySQL客户端&#xff0c;创建一个名为userl的用户&#xff0c;初始密码为123456;创建一个名为user2的用户&#xff0c;无初始密码。然后&#xff0c;分别使用uesr1、user2登录MySQL 客户端。 创建两个用户 使用user1登录 使用user2登录 2.使用root用户登录&a…

星海智算:skl-videolingo-2.0(AI视频翻译)使用教程

&#xff08;一&#xff09;项目介绍 VideoLingo是一款专为视频创作者设计的开源自动化工具&#xff0c;旨在提供从视频字幕生成到声音克隆配音的一站式服务。以下是对VideoLingo的详细介绍&#xff1a; 1、核心功能​ 1.1、一键全自动视频搬运​ 支持从YouTube等平台下载视…

SQL靶场第八关攻略

一.判断类型 输入?id1 and 11-- 输入?id1 and 12--页面都正常&#xff0c;说明不是数值型 输入?id1页面没有回显 加上--页面正常&#xff0c;说明是字符型注入 二.判断列数 输入?id1 order by 3--页面正常 输入?id1 order by 4--页面没有回显&#xff0c;说明一共有三列…

华为HCIP-Datacom H12-821H12-831 (12月最新题库)

备考HCIP-datacom的小伙伴注意啦 !!! 2024年下半年12月份最新(H12-821和H12-831)题库带解析,有需要的小伙伴移动至文章末 H12-821: H12-831: 1.BGP 邻居建立过程的状态存在以下几种&#xff1a;那么建立一个成功的连接所经历的状态机顺序是 A、3-1-2-5-4 B、1-3-5-2-4 C、…

Flask使用长连接

Flask使用flask_socketio实现websocket Python中的单例模式 在HTTP通信中&#xff0c;连接复用&#xff08;Connection Reuse&#xff09;是一个重要的概念&#xff0c;它允许客户端和服务器在同一个TCP连接上发送和接收多个HTTP请求/响应&#xff0c;而不是为每个新的请求/响…

MR30分布式 I/O 模块助力 CNC 设备产能飞跃

背景分析 在现代制造业中&#xff0c;CNC 设备扮演着极为关键的角色。然而&#xff0c;CNC 设备在运行过程中也存在着诸多痛点。传统的 CNC 设备往往在控制与通信方面存在局限&#xff0c;其内部的 I/O 系统大多采用集中式架构。这种架构下&#xff0c;一旦需要处理大量的输入输…

远程修改ESXi 6.7管理IP地址

1.启用安全Shell&#xff08;也就是EXSi可以被SSH访问的功能&#xff09; 2.使用SecureCRT SSH2连接ESXi主机&#xff0c;现在使用dcui并没有任何反应&#xff0c;在Session标签栏右键点击Disconnect。 The time and date of this login have been sent to the system logs.WA…

Vulnhub靶场 Kioptrix: Level 1 (#1) 练习

目录 0x00 环境准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用1. 方法一&#xff1a;mod_ssl 2.8.42. 方法二&#xff1a;CVE-2003-02013. 方法三&#xff1a;Samba 0x04 总结 0x00 环境准备 下载链接&#xff1a;http://www.kioptrix.com/dlvm/Kioptrix_Level_1.…

消息中间件-Kafka3-kafkaJavaClient小例

消息中间件-Kafka3-kafkaJavaClient小例 Kafak Java Client private static final String KAFKA_TOPIC "kafak-test";private static String bootstrapServers "localhost:9092";private static AdminClient client null;static {Properties config n…

关于光耦合器的常见误解

光耦合器以其提供电气隔离的能力而闻名&#xff0c;广泛应用于从电源到通信系统的各种应用。尽管光耦合器非常普遍&#xff0c;但人们对其特性和用途存在一些常见的误解。本文将揭穿一些最常见的误解&#xff0c;以帮助工程师和爱好者做出更明智的决策。 误解1&#xff1a;光耦…

【简洁明快】使用python读取数据建立pptx (python-pptx图文调整案例)

使用python自动读取数据建立pptx 前言如何使用 Python 自动生成 PPTX第一步&#xff1a;安装所需库第二步&#xff1a;创建一个新的 PPTX第三步&#xff1a;添加幻灯片第四步&#xff1a;添加内容添加文本添加图片第五步&#xff1a;保存 PPTX 图文实操案例&#xff08;自动读取…

【智体OS】官方上新发布rtphone分布式安卓设备远程控制插件:实现远程访问和管理手机

【智体OS】官方上新发布rtphone分布式安卓设备远程控制插件&#xff1a;实现远程访问和管理手机 dtns.network是一款主要由JavaScript编写的智体世界引擎&#xff08;内嵌了three.js编辑器的定制版-支持以第一视角浏览3D场馆&#xff09;&#xff0c;可以在浏览器和node.js、d…

Vue智慧商城项目

创建项目 vue组件库 — vant-ui&#xff08;常用于移动端&#xff09; Vant 2 - 轻量、可靠的移动端组件库 安装vant npm i vantlatest-v2 -S 引入组件 按需导入和全部导入 全部导入 整个组件库的所有组件都导进来&#xff0c;缺点是增加了代码包体积 main.js import…

提升网站流量的关键:AI在SEO关键词优化中的应用

内容概要 在当今数字时代&#xff0c;提升网站流量已成为每个网站管理员的首要任务。而人工智能的技术进步&#xff0c;为搜索引擎优化&#xff08;SEO&#xff09;提供了强有力的支持&#xff0c;尤其是在关键词优化方面。关键词是连接用户需求与网站内容的桥梁&#xff0c;其…