leetcode 977. Squares of a Sorted Array

题目描述

双指针法一

用right表示原数组中负数和非负数的分界线。

nums[0,right-1]的是负数,nums[right,nums.size()-1]是非负数。

然后用合并两个有序数组的方法。合并即可。

class Solution {
public:vector<int> sortedSquares(vector<int>& nums) {vector<int> res;int len = nums.size();res.reserve(len);int right = -1;for(int i =0;i <len;i++){if(right == -1 && nums[i] >=0)right = i;nums[i] = nums[i]*nums[i];}int left = right-1;if(right == -1){right = len;left = len -1;}while(left >= 0 && right < len){if(nums[left]<=nums[right]){res.push_back(nums[left--]);}else{res.push_back(nums[right++]);}}while(left>=0){res.push_back(nums[left--]);}while(right<len){res.push_back(nums[right++]);}return res;}
};

双指针法二

容易发现原数组中元素的绝对值从两端向中间减小。因此可以逆序确定res数组。

class Solution {
public:vector<int> sortedSquares(vector<int>& nums) {int len = nums.size();vector<int> res(len,0);int left = 0;int right = len -1;int res_pos = len - 1;while(left <= right){if(abs(nums[left]) > abs(nums[right])){res[res_pos--] = nums[left]*nums[left];left++;}else{res[res_pos--] = nums[right]*nums[right];right--;}}return res;}
};

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

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

相关文章

在 API 模拟阶段:Apipost vs. Faker.js vs. Postman —— 为什么 Apipost 是最优选择

在构建 API 的过程中&#xff0c;模拟数据的能力至关重要。就像你在做饭时等待食材送达一样——没有原料&#xff0c;菜也没法完成。 但是&#xff0c;当你的后端还在开发中&#xff0c;而前端又急需真实的 API 响应进行开发时&#xff0c;该怎么办&#xff1f;这时候&#xf…

一种快速计算OTA PSRR的方法(Ⅰ)

序言:最近碰到了一道有趣的习题&#xff0c;让我重新思考了下如何计算运放的PSRR&#xff0c;再结合相关论文&#xff0c;现将所思所想分享出来&#xff0c;欢迎大家讨论。 1.从Razavi的一道习题引入 题目要求计算电路的PSRR&#xff0c;已知PSRR定义为信号增益除以电源增益&am…

第十二届蓝桥杯 2021 C/C++组 空间

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 代码详解&#xff1a; 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 空间 - 蓝桥云课 思路&#xff1a; 思路详解&#…

TensorFlow深度学习实战——基于循环神经网络的情感分析模型

TensorFlow深度学习实战——基于循环神经网络的情感分析模型 0. 前言1. 数据处理2. 模型构建与训练3. 模型评估相关链接 0. 前言 情感分析 (Sentiment Analysis) 是自然语言处理中的一项技术&#xff0c;旨在识别和提取文本中的情感信息&#xff0c;通常是分析一段文本中是否存…

eslint相关报错收集

[vue/no-multiple-template-root]The template root requires exactly one element.eslint-plugin-vuejsx报错&#xff1a;jsx报错Parsing error: Unexpected token &#xff1c;eslint&#xff1b;ts报错&#xff1a;Parsing error: Unexpected token {eslintmodule报错 ‘mod…

【论文推荐】深度学习赋能地质灾害分析:数据、模型、应用与机遇(用于地质灾害分析的深度学习:数据源)

【论文推荐】深度学习赋能地质灾害分析&#xff1a;数据、模型、应用与机遇&#xff08;用于地质灾害分析的深度学习&#xff1a;数据源&#xff09; 【论文推荐】深度学习赋能地质灾害分析&#xff1a;数据、模型、应用与机遇&#xff08;用于地质灾害分析的深度学习&#xf…

判断用户选择的Excel单元格区域是否跨页?

VBA应用程序开发过程中&#xff0c;经常需要处理用户选中的单元格区域&#xff0c;有的应用场景中&#xff0c;需要限制用户选中区域位于同一页中&#xff08;以打印预览显示的分页划分&#xff09;&#xff0c;但是VBA对象模型中并没有提供相应的接口&#xff0c;用于快速查询…

题解:洛谷 CF2091E Interesting Ratio

思路推导 我们先对 32 32 32 和 96 96 96 进行二进制拆分。 相同部分&#xff08;用 α \alpha α 表示&#xff09;&#xff1a; 5 5 5 个 2 2 2。 不同部分&#xff08;用 β \beta β 表示&#xff09;&#xff1a; 1 1 1 和 3 3 3。 gcd ⁡ ( 32 , 96 ) \gcd(32,9…

linux安装配置PostgreSQL

环境&#xff1a;centos7、SpringBoot、PostgreSQL15 PostgreSQL: Linux downloads (Red Hat family) PostgreSQL安装 1.安装 PostgreSQL Yum 仓库 RPM 包 sudo rpm -ivh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noar…

docker安装jenkins v2.504.1集群

1 概述 Jenkins是一款开源的、基于Java开发的持续集成&#xff08;CI&#xff09;与持续交付&#xff08;CD&#xff09;工具&#xff0c;旨在通过自动化构建、测试和部署流程&#xff0c;提升软件开发效率与质量。 ‌ 1.1 核心功能与特点 持续集成与交付‌ Jenkins支持自动化…

5月2日日记

今天看了爸爸推荐的书&#xff0c;叫&#xff1a;“高效能人士的七个习惯” 现在刚看完50页&#xff0c;感觉确实有点东西&#xff0c; 七个习惯分别是&#xff1a; 个人层面1积极主动 2要事第一 3以终为始 社交层面 4知彼解己5 统效综合 6双赢思维 7不断更新 目前还没有…

Aws S3上传优化

上传大约 3.4GB 的 JSON 文件&#xff0c;zip算法压缩后约为 395MB&#xff0c;上传至 S3 效率优化&#xff0c;有一些优化方案可以提高上传速率。下面是几种可能的优化方式&#xff0c;包括选择压缩算法、调整上传方式、以及其他可能的方案。 方案 1. 选择更好的压缩算法 压…

CAD(计算机辅助设计)基础知识点整理

以下是CAD&#xff08;计算机辅助设计&#xff09;的基础知识点整理&#xff0c;涵盖核心概念、操作技巧和行业规范&#xff0c;适合新手学习和参考&#xff1a; 一、CAD基本概念 什么是CAD • 利用计算机技术进行设计和绘图的工具&#xff0c;广泛应用于机械、建筑、电子等领…

重构之道:识别并替换不合适使用的箭头函数

1、引言 JavaScript 自 ES6 引入了箭头函数(Arrow Function)后,因其简洁的语法和对 this 的词法绑定机制,迅速成为开发者喜爱的写法之一。然而,并不是所有场景都适合使用箭头函数。 在实际开发中,我们常常会因为追求代码简洁而忽视其潜在问题,例如: this 指向错误不适…

[英语单词] from under

最近在看RCU的资料&#xff0c;读到下面的一句&#xff0c;感觉总是特别怪怪的&#xff0c;就是从单词的组合角度&#xff0c;记录一下。 Use rcu_read_lock() and rcu_read_unlock() to ensure that the structure does not get deleted out from under us。 意思是我们还在使…

Python 中 DAO 层使用泛型的探索

方法一&#xff1a; from types import UnionType from typing import TypeVar, Generic, TypeModelT TypeVar(ModelT)def _new_cls_with_grm_generic_args(cls, __item):new_cls type(f"{cls.__name__}[{__item.__name__}]", (cls,), {})new_cls._grm_generic_ar…

Cesium 环境搭建

一、前提条件 1. **安装 Node.js** - 访问 [Node.js 官方网站](https://nodejs.org/)&#xff0c;下载并安装适合你操作系统的版本。Node.js 用于运行本地开发服务器和安装依赖。 2. **安装 Vue CLI** - Vue CLI 是一个用于快速开发 Vue.js 项目的工具。在终端中运行以下…

DarkGS:论文解读与全流程环境配置及数据集测试【基于Ubuntu20.04 】【2025最新实战无坑版!!】

一、背景及意义 DarkGS是一个创新性的研究项目&#xff0c;旨在解决机器人在黑暗或低光照环境中探索的问题。传统的3D重建和视觉定位系统在光照条件不佳时表现不佳&#xff0c;这严重限制了机器人在黑暗环境中的应用&#xff0c;如夜间救援、深海探索或洞穴勘测等场景。 这项工…

(八)RestAPI 毛子(Unit Testing/Integration)

文章目录 项目地址一、Unit Testing1.1 创建X unit 测试项目1. 创建项目目录2. 管理包1.2 创建CreateEntryDtoValidator测试1.3 创建CreateEntryDtoValidator测试二、Integration test2.1 创建Integration test环境1. 安装所需要的包2.2 配置基础设置1. 数据库链接DevHabitWebA…

设计模式--桥接模式详解

桥接模式&#xff08;bridge pattern&#xff09; 桥接模式时将抽象部分与它的实现部分分离&#xff0c;使他们可以独立的变化。它是一种对象结构型模式&#xff0c;又称为柄体&#xff08;Handle and Body&#xff09;模式或者接口&#xff08;interface&#xff09;模式&…