当前位置: 首页 > news >正文

100.有序数组的平方(力扣)

代码解决一

class Solution {
public:// 函数接受一个整数数组,返回每个元素平方值排序后的结果vector<int> sortedSquares(vector<int>& nums) {int len = nums.size(); // 获取数组的长度vector<int> v; // 创建一个新的数组,用于存储平方值v.resize(len); // 设置新数组的大小为原数组的长度// 遍历原始数组,计算每个元素的平方值,并存储到新数组for (int i = 0; i < len; i++) {v[i] = nums[i] * nums[i];}// 对新数组进行排序,得到按平方值排序后的结果sort(v.begin(), v.end());// 返回排序后的数组return v;}
};

代码思想

  1. 获取数组的长度 len

  2. 创建一个新的数组 v,用于存储每个元素的平方值,并且设置其大小为数组的长度。

  3. 使用循环遍历原始数组 nums,计算每个元素的平方值,并将其存储到新数组 v 的相应位置。

  4. 对新数组 v 进行排序,以得到按平方值排序后的结果。

  5. 返回排序后的数组 v

 代码解决二

class Solution {
public:// 函数接受一个已排好序数组,返回每个元素平方值排序后的结果vector<int> sortedSquares(vector<int>& nums) {int n = nums.size(); // 获取数组的长度vector<int> v(n); // 创建一个新的数组,用于存储平方值并保持排序// 初始化左右指针和新数组的位置指针for (int i = 0, j = n - 1, pos = n - 1; i <= j;) {// 比较两端元素的平方值大小,较大者放到新数组的末尾if (nums[i] * nums[i] > nums[j] * nums[j]) {v[pos] = nums[i] * nums[i];i++; // 移动左指针} else {v[pos] = nums[j] * nums[j];j--; // 移动右指针}pos--; // 移动新数组的位置指针}return v; // 返回排序后的数组}
};

 代码思想

具体思路如下:

  1. 首先,初始化三个变量:

    • i 表示左指针,从数组的开头开始;
    • j 表示右指针,从数组的末尾开始;
    • pos 表示新数组 v 中的位置指针,从末尾开始。
  2. 使用循环(for 循环)进行遍历,循环条件是 i 小于等于 j

  3. 在每一次循环中,比较左指针 i 所指元素的平方值与右指针 j 所指元素的平方值的大小。将较大者的平方值存储到新数组 v 的当前位置 pos 中,然后根据比较结果移动相应的指针:

    • 如果 nums[i] * nums[i] > nums[j] * nums[j],则将 nums[i] * nums[i] 存储到 v[pos],同时将左指针 i 向右移动一步(i++);
    • 否则,将 nums[j] * nums[j] 存储到 v[pos],同时将右指针 j 向左移动一步(j--)。
  4. 在每一步迭代中,新数组 v 的位置指针 pos 向前移动一步(pos--),用于存储下一个平方值。

  5. 循环结束后,新数组 v 中存储了原始数组 nums 中每个元素的平方值,并且按照从小到大的顺序排列。

  6. 最终,返回新数组 v

相关文章:

100.有序数组的平方(力扣)

代码解决一 class Solution { public:// 函数接受一个整数数组&#xff0c;返回每个元素平方值排序后的结果vector<int> sortedSquares(vector<int>& nums) {int len nums.size(); // 获取数组的长度vector<int> v; // 创建一个新的数组&#xff0c;用…...

微服务--01--简介、服务拆分原则

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 微服务微服务架构&#xff0c;是服务化思想指导下的一套最佳实践架构方案。服务化&#xff0c;就是把单体架构中的功能模块拆分为多个独立项目。 单体架构微服务架构…...

IntelliJ IDEA安装使用教程

IntelliJ IDEA是一个流行的Java 集成开发环境&#xff08;IDE&#xff09;&#xff0c;由JetBrains公司开发。它是一款全功能的IDE&#xff0c;支持多种编程语言&#xff0c;如Java、Kotlin、Groovy、Scala、Python、JavaScript、HTML、CSS等等。IntelliJ IDEA 提供了高效的代码…...

校园门禁可视化系统解决方案

随着科技的持续进步&#xff0c;数字化校园在教育领域中的地位日益上升&#xff0c;各种智能门禁、安防摄像头等已遍布校园各个地方&#xff0c;为师生提供安全便捷的通行体验。然而数据收集分散、缺乏管理、分析困难等问题也逐渐出现&#xff0c;在这个数字化环境中&#xff0…...

rest_framework_django学习笔记一(序列化器)

rest_framework_django学习笔记一(序列化器) 一、引入Django Rest Framework 1、安装 pip install djangorestframework2、引入 INSTALLED_APPS [...rest_framework, ]3、原始RESTful接口写法 models.py from django.db import models 测试数据 仅供参考 INSERT INTO de…...

面试题:什么是负载均衡?常见的负载均衡策略有哪些?

文章目录 一、负载均衡二、负载均衡模型分类三、CDN负载均衡四、LVS负载均衡4.1 LVS 支持的三种模式4.1.1 DR 模式4.1.2 TUN 模式4.1.3 NAT 模式 4.2 LVS 基于 Netfilter 的框架实现 五、负载均衡策略是什么六、常用负载均衡策略图解6.1 轮询6.2 加权轮询6.3 最少连接数6.4 最快…...

精通Git(第2版)读书笔记

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言第 1章 入门 11.1 关于版本控制 11.1.1 本地版本控制系统 1 第 2章 Git基础 132.1 获取Git仓库 132.1.1 在现有中初始化Git仓库 132.1.2 克隆现有仓库 14 2.2 在…...

XUbuntu22.04之OBS30.0设置录制音频降噪(一百九十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…...

渗透测试学习day4

文章目录 靶机&#xff1a;SequelTask1Task2Task3Task4Task5Task6Task7Task8 靶机&#xff1a;CrocodileTask1Task2Task3Task4Task5Task6Task7Task8Task9Task10 靶机&#xff1a;ResponderTask1Task2Task3Task4Task5Task6Task7Task8Task9Task10Task11 靶机&#xff1a;ThreeTas…...

Deepin使用记录-deepin系统下安装RabbitMq

目录 0、引言 1、由于RabbitMq是erlang语言开发的&#xff0c;所有需要先安装erlang 2、更新源并安装RabbitMq 3、安装完成之后&#xff0c;服务是启动的&#xff0c;可以通过以下语句查看状态 4、这样安装完成之后&#xff0c;是看不到web页面的&#xff0c;需要再安装一…...

【腾讯云云上实验室】用向量数据库——实现高效文本检索功能

文章目录 前言Tencent Cloud VectorDB 简介Tencent Cloud VectorDB 使用实战申请腾讯云向量数据库腾讯云向量数据库使用步骤腾讯云向量数据库实现文本检索 结论和建议 前言 想必各位开发者一定使用过关系型数据库MySQL去存储我们的项目的数据&#xff0c;也有部分人使用过非关…...

Pytorch中的gather的理解和用法

Pytorch中的gather的理解和用法 这个Gather的用法花费了点时间&#xff0c;我相信很多人一开始不太懂。 跟着我简单理解。 首先样例是&#xff1a; tensor([[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]])然后index: [[2, 1, 0]]然后执行的代码&#xff1a; tensor_0.gather(0…...

唯创知音WTN6系列语音芯片:高音频采样率与精细音量控制赋能广泛应用

在语音芯片领域&#xff0c;唯创知音的WTN6系列语音芯片以其出色的性能和广泛的应用领域&#xff0c;无疑是行业的一颗璀璨明星。近期&#xff0c;该系列芯片实现了音频采样率32kHz的突破&#xff0c;以及16级音量控制的精细调节&#xff0c;进一步提升了其在各类应用中的表现。…...

机器人分类

从发展阶段分类&#xff1a; 1第一代机器人2第二代机器人3第三代机器人&#xff1a;智能型机器人。生于90年代。具有传感器&#xff0c;以前的机器人都不具有传感器 从控制方式分类&#xff1a;&#xff08;我觉得这个分类好乱&#xff09; 操作型机器人&#xff1a;可自动控…...

html/css中位置position的绝对位置absolute顺时针盒子案例图片排序

目标图片&#xff1a; Dreamweaver界面&#xff1a; 代码部分&#xff1a; <!doctype html> <html> <head> <meta charset"utf-8"> <title>无标题文档</title> <style type"text/css">.red{background-color:r…...

分享86个清新唯美PPT,总有一款适合您

分享86个清新唯美PPT&#xff0c;总有一款适合您 86个清新唯美PPT下载链接&#xff1a;https://pan.baidu.com/s/1QEaXeWAekCbAWDD0iTgvMw?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整…...

虚拟机系列:Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置

Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置 Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置 在更新Oracle VM Virtua…...

【数据库】数据库并发控制的冲突检测,冲突可串行化的调度,保障事务的特性

冲突可串行化 ​专栏内容&#xff1a; 手写数据库toadb 本专栏主要介绍如何从零开发&#xff0c;开发的步骤&#xff0c;以及开发过程中的涉及的原理&#xff0c;遇到的问题等&#xff0c;让大家能跟上并且可以一起开发&#xff0c;让每个需要的人成为参与者。 本专栏会定期更新…...

java 对象大小计算

说明&#xff1a; 对于64位机&#xff1a;一个对象由三部分组成 对象头(object header) mark word &#xff1a;64bitkclass pointer &#xff1a;32bit(默认使用指针压缩)&#xff0c;如果取消指针压缩( XX:-UseCompressedOops)&#xff0c;则占用64bit数组长度&#xff1a;数…...

12个国外电子元器件基本参数(下)

DAC8162SDSCR TI DAC088S085CISQNOPB TI TL4050C41QDBZR TI NE3516S02-T1D-A RENESAS TECHNOLOGY MXL862-AL-R MAXLINEAR SI32176-B-GM1R SILICON LAB...

Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 构建可移植的计算机视觉环境 文章目录 前言引言简介&#xff1a;目的和重要性&#xff1a; 深入理解Docker和OpenCVDocker的基本概念和优势&#xff1a;OpenCV简介和应用领域&#xff1a;…...

SSH基础和高级用法

SSH基础和高级用法 SSH&#xff08;Secure Shell&#xff09;是一种安全协议&#xff0c;用于在不安全的网络上提供安全的远程登录和数据传输。以下是一些SSH的用法和高级用法&#xff1a; 基本用法&#xff1a; 远程登录&#xff1a;使用ssh命令可以实现在本地计算机上远程…...

算法通关第十三关-青铜挑战数学基础问题

数组元素积的符号 描述 : 已知函数 signFunc(x) 将会根据 x 的正负返回特定值&#xff1a; 如果 x 是正数&#xff0c;返回 1 。如果 x 是负数&#xff0c;返回 -1 。如果 x 是等于 0 &#xff0c;返回 0 。 给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的…...

如何使用 Freepik 的 Pikaso 工具来画图

Freepik 是一个提供高质量的照片、矢量图像、插图以及 PSD 文件素材的网站https://www.freepik.com/您可以在这里找到各种风格和主题的素材&#xff0c;用于您的创意项目。Freepik 还提供了一个名为 Pikaso 的在线画图工具&#xff0c;让您可以轻松地创建和编辑您自己的图像&am…...

一个没正常处理tcp对端关闭的bug

最近使用自研的http client时发现一个问题&#xff0c;对端在发送响应数据之后立即调用close关闭了连接&#xff0c;我这没有调用到响应的回调&#xff0c;而是调用到了连接关闭的回调。对端延迟一会再关闭连接就没问题&#xff0c;用curl去访问也是正常的。经过排查是没有正确…...

什么是JDK

JDK是Java的开发工具&#xff0c;全称为Java Development Kit&#xff0c;包含Java运行环境&#xff0c;Java工具&#xff0c;Java基础类库三大部分。 Java运行环境 Java运行环境&#xff0c;也就是JRE&#xff0c;全称为Java Runtime Environment &#xff0c;其中包含JVM&…...

积分表二(高等数学同济版中所有的积分公式)

文章目录 含有 x − a x a \sqrt{\pm \frac{x-a}{xa}} xax−a​ ​ 或者 ( x − a ) ( b − x ) \sqrt{(x-a)(b-x)} (x−a)(b−x) ​ 的积分含有三角函数函数的积分含有反三角函数的积分 (其中 a > 0 a>0 a>0)含有指数函数的积分含有对数函数的积分含有双曲函数的…...

Golang数据类型(数字型)

Go数据类型&#xff08;数字型&#xff09; Go中数字型数据类型大致分为整数&#xff08;integer&#xff09;、浮点数&#xff08;floating point &#xff09;和复数&#xff08;Complex&#xff09;三种 整数重要概念 整数在Go和Python中有较大区别&#xff0c;主要体现在…...

【JVM系列】- 穿插·对象的实例化与直接内存

对象的实例化与直接内存 &#x1f604;生命不息&#xff0c;写作不止 &#x1f525; 继续踏上学习之路&#xff0c;学之分享笔记 &#x1f44a; 总有一天我也能像各位大佬一样 &#x1f31d;分享学习心得&#xff0c;欢迎指正&#xff0c;大家一起学习成长&#xff01; 文章目录…...

【C++干货铺】继承 | 多继承 | 虚继承

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 继承的概念及定义 继承的概念 继承的定义 继承基类成员访问方式的变化 基类和派生类的赋值转化 继承中的作用域 派生类的默认成员函数 构造函数 拷贝构造…...