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.pswp.cn/news/903900.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903900.shtml
英文地址,請注明出處:http://en.pswp.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;模式&…