LeetCode 1551.是數組中所有元素相等的最小操作數

存在一個長度為 n 的數組 arr ,其中 arr[i] = (2 * i) + 1 ( 0 <= i < n )。

一次操作中,你可以選出兩個下標,記作 x 和 y ( 0 <= x, y < n )并使 arr[x] 減去 1 、arr[y] 加上 1 (即 arr[x] -=1 且 arr[y] += 1 )。最終的目標是使數組中的所有元素都 相等 。題目測試用例將會 保證 :在執行若干步操作后,數組中的所有元素最終可以全部相等。

給你一個整數 n,即數組的長度。請你返回使數組 arr 中所有元素相等所需的 最小操作數 。

示例 1:

輸入:n = 3
輸出:2
解釋:arr = [1, 3, 5]
第一次操作選出 x = 2 和 y = 0,使數組變為 [2, 3, 4]
第二次操作繼續選出 x = 2 和 y = 0,數組將會變成 [3, 3, 3]
示例 2:

輸入:n = 6
輸出:9

提示:

1 <= n <= 10^4

貪心法,相當于調整數組中的數,使每個數都等于n,利用求和公式即可:

class Solution {
public:int minOperations(int n) {int res = 0;if (n & 1){// 拿5舉例,數組中的3需要2步到5,1需要4步到5,即求2 + 4的值// 相當于以2為首數字,公差為2的等差數列求和,數列的項數為n / 2res = (2 + 2 * (n / 2)) * (n / 2) / 2;}else{// 拿4距離,數組中的3需要1步到4,1需要3步到4,即求1 + 3的值// 相當于以1位首數字,公差為2的等差數列求和,數列的項數為n / 2// res =  (1 + 2 * (n / 2) - 1) * (n / 2) / 2;res = n * n / 4;}// 實際上,當n為奇數時,res的結果可直接用偶數的公式n * n / 4算出// 而不能用(1 + 2 * (n / 2) - 1) * (n / 2) / 2;計算出,因為n/2會舍棄小數// 因此本題可以直接返回n * n / 4return res;}
};

此算法時間復雜度為O(1),空間復雜度為O(1)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714557.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714557.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714557.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mac專用投屏工具AirServer 7.27 for Mac中文版2024最新圖文教程

Mac專用投屏工具AirServer 7.27 for Mac中文版是一款適用于Mac的投屏工具&#xff0c;可以將Mac屏幕快速投影到其他設備上&#xff0c;如電視、投影儀、平板等。 Mac專用投屏工具AirServer 7.27 for Mac中文版具有優秀的兼容性&#xff0c;可以與各種設備配合使用。無論是iPhon…

基于springboot+vue的在線考試系統(源碼+論文)

文章目錄 目錄 文章目錄 前言 一、功能設計 二、功能頁面 三、論文 前言 現在我國關于在線考試系統的發展以及專注于對無紙化考試的完善程度普遍不高&#xff0c;關于對考試的模式還大部分還停留在紙介質使用的基礎上&#xff0c;這種教學模式已不能解決現在的時代所產生的考試…

【MySQL】數據庫的操作

【MySQL】數據庫的操作 目錄 【MySQL】數據庫的操作創建數據庫數據庫的編碼集和校驗集查看系統默認字符集以及校驗規則查看數據庫支持的字符集查看數據庫支持的字符集校驗規則校驗規則對數據庫的影響數據庫的刪除 數據庫的備份和恢復備份還原不備份整個數據庫&#xff0c;而是備…

YOLOv9改進|增加SPD-Conv無卷積步長或池化:用于低分辨率圖像和小物體的新 CNN 模塊

專欄介紹&#xff1a;YOLOv9改進系列 | 包含深度學習最新創新&#xff0c;主力高效漲點&#xff01;&#xff01;&#xff01; 一、文章摘要 卷積神經網絡(CNNs)在計算即使覺任務中如圖像分類和目標檢測等取得了顯著的成功。然而&#xff0c;當圖像分辨率較低或物體較小時&…

【LeetCode刷題】146. LRU 緩存

請你設計并實現一個滿足 LRU (最近最少使用) 緩存 約束的數據結構。 實現 LRUCache 類&#xff1a; LRUCache(int capacity) 以 正整數 作為容量 capacity 初始化 LRU 緩存int get(int key) 如果關鍵字 key 存在于緩存中&#xff0c;則返回關鍵字的值&#xff0c;否則返回 -…

全量知識系統問題及SmartChat給出的答復 之9 三套工具之4語法解析器 之2

Q23. 一個語言的語法簡約規則 這些規則顯示show 在一個給定單詞&#xff08;a given word&#xff09;的右邊或左邊可能出現的單詞的類別。句型的多樣性variety不是復雜文法&#xff08;a complex grammar&#xff09;的結果&#xff0c;而是簡單語法&#xff08;a simple gra…

【InternLM 實戰營筆記】浦語·靈筆的圖文理解及創作部署、 Lagent 工具調用 Demo

浦語靈筆的圖文理解及創作部署 浦語靈筆是基于書生浦語大語言模型研發的視覺-語言大模型&#xff0c;提供出色的圖文理解和創作能力&#xff0c;結合了視覺和語言的先進技術&#xff0c;能夠實現圖像到文本、文本到圖像的雙向轉換。使用浦語靈筆大模型可以輕松的創作一篇圖文推…

進程間的通信 -- 共享內存

一 共享內存的概念 1. 1 共享內存的原理 之前我們學過管道通信&#xff0c;分為匿名管道和命名管道&#xff0c;匿名管道通過父子進程的屬性繼承原理來完成父子進程看到同一份資源的目的&#xff0c;而命名管道則是通過路徑與文件名來唯一標識管道文件&#xff0c;來讓不同的進…

學習Android的第二十一天

目錄 Android ProgressDialog (進度條對話框) 例子 Android DatePickerDialog 日期選擇對話框 例子 Android TimePickerDialog 時間選擇對話框 Android PopupWindow 懸浮框 構造函數 方法 例子 官方文檔 Android OptionMenu 選項菜單 例子 官方文檔 Android Progr…

Java實戰:Spring Boot中各類參數校驗機制

引言 在開發Web應用程序時&#xff0c;對客戶端傳入的參數進行有效校驗是保證系統安全性和穩定性的重要環節。Spring Boot作為一個現代化的Java開發框架&#xff0c;提供了多種參數校驗的方法和工具&#xff0c;以滿足不同場景下的需求。本文將深入探討Spring Boot中實現各種參…

typescript 的常用方式

文章目錄 前言一、綁定props 默認值的方式&#xff1a;withDefaults1.vue2 的props設置默認值2.vue3 的props設置默認值(1) 不設置默認值的寫法(2) 設置默認值的寫法&#xff08;分離模式&#xff09;(3) 設置默認值的寫法&#xff08;組合模式&#xff09; 二、定義一個二維數…

Matlab在同一張圖中如何加入多個圖例

根據代碼最終畫出的圖片如下&#xff1a; 其實原理很簡單&#xff0c;就是在一張figure中畫多個坐標軸&#xff0c;每個坐標軸都有對應的圖例&#xff0c;之后再將多余坐標軸隱藏&#xff0c;只保留一個即可。 代碼如下&#xff1a; clear all; close all;dd_linewidth 1;a …

maven archetype 項目原型

拓展閱讀 maven 包管理平臺-01-maven 入門介紹 Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的詳細對比表格 maven 包管理平臺-02-windows 安裝配置 mac 安裝配置 maven 包管理平臺-03-maven project maven 項目的創建入門 maven 包管理平臺-04-maven archetype 項目原型 ma…

Spring學習筆記(六)利用Spring的jdbc實現學生管理系統的用戶登錄功能

一、案例分析 本案例要求學生在控制臺輸入用戶名密碼&#xff0c;如果用戶賬號密碼正確則顯示用戶所屬班級&#xff0c;如果登錄失敗則顯示登錄失敗。 &#xff08;1&#xff09;為了存儲學生信息&#xff0c;需要創建一個數據庫。 &#xff08;2&#xff09;為了程序連接數…

洛谷P1927防護傘

題目描述 據說 20122012 的災難和太陽黑子的爆發有關。于是地球防衛小隊決定制造一個特殊防護傘&#xff0c;擋住太陽黑子爆發的區域&#xff0c;減少其對地球的影響。由于太陽相對于地球來說實在是太大了&#xff0c;我們可以把太陽表面看作一個平面&#xff0c;中心定為(0,0…

C 基本語法

我們已經看過 C 程序的基本結構&#xff0c;這將有助于我們理解 C 語言的其他基本的構建塊。 C 的令牌&#xff08;Token&#xff09; C 程序由各種令牌組成&#xff0c;令牌可以是關鍵字、標識符、常量、字符串值&#xff0c;或者是一個符號。例如&#xff0c;下面的 C 語句…

30天自制操作系統(第23天)

23.1 編寫malloc 參考第22天的內容&#xff0c;在繪制窗口前先分配了150*50個字節大小的內存&#xff0c;所以導致該文件經編譯后有7.6k左右&#xff0c;能否在其中使用指針呢&#xff1f;當需要開辟空間時&#xff0c;移動指針即可。在之前的章節中也有函數memman_alloc函數可…

php源碼 單色bmp圖片取模工具 按任意方式取模 生成字節數組 自由編輯點陣

http://2.wjsou.com/BMP/index.html 想試試chatGPT4生成&#xff0c;還是要手工改 php 寫一個網頁界面上可以選擇一張bmp圖片&#xff0c;界面上就顯示這張bmp圖片&#xff0c; 點生成取模按鈕&#xff0c;在圖片下方會顯示這張bmp圖片的取模數據。 取模規則是按界面設置的&a…

Linux 的交換空間(swap)是什么?有什么用?

目錄 swap是什么&#xff1f;swap有什么用&#xff1f;swap使用典型場景如何查看你的系統是否用到交換空間呢&#xff1f;查看系統中swap in/out的情況 swap是什么&#xff1f; swap就是磁盤上的一塊區域。它和Windows系統中的交換文件作用類似&#xff0c;但是它是一段連續的…

03、MongoDB -- MongoDB 權限的設計

目錄 MongoDB 權限的設計演示前準備&#xff1a;啟動 mongodb 服務器 和 客戶端 &#xff1a;1、啟動單機模式的 mongodb 服務器2、啟動 mongodb 的客戶端 MongoDB 權限的設計1、MongoDB 的每個數據庫都可以保存用戶&#xff0c;不止admin數據庫可以保存用戶。2、保存用戶的數據…