日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 2161. 根据给定数字划分数组

發布時間:2024/7/5 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 2161. 根据给定数字划分数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

給你一個下標從 0 開始的整數數組 nums 和一個整數 pivot 。
請你將 nums 重新排列,使得以下條件均成立:

  • 所有小于 pivot 的元素都出現在所有大于 pivot 的元素 之前 。
  • 所有等于 pivot 的元素都出現在小于和大于 pivot 的元素 中間 。
  • 小于 pivot 的元素之間和大于 pivot 的元素之間的 相對順序 不發生改變。
    更正式的,考慮每一對 pi,pj ,pi 是初始時位置 i 元素的新位置,pj 是初始時位置 j 元素的新位置。
    對于小于 pivot 的元素,如果 i < j 且 nums[i] < pivot 和 nums[j] < pivot 都成立,那么 pi < pj 也成立。
    類似的,對于大于 pivot 的元素,如果 i < j 且 nums[i] > pivot 和 nums[j] > pivot 都成立,那么 pi < pj 。

請你返回重新排列 nums 數組后的結果數組。

示例 1: 輸入:nums = [9,12,5,10,14,3,10], pivot = 10 輸出:[9,5,3,10,10,12,14] 解釋: 元素 953 小于 pivot ,所以它們在數組的最左邊。 元素 1214 大于 pivot ,所以它們在數組的最右邊。 小于 pivot 的元素的相對位置和大于 pivot 的元素的相對位置分別為 [9, 5, 3][12, 14] ,它們在結果數組中的相對順序需要保留。示例 2: 輸入:nums = [-3,4,3,2], pivot = 2 輸出:[-3,2,4,3] 解釋: 元素 -3 小于 pivot ,所以在數組的最左邊。 元素 43 大于 pivot ,所以它們在數組的最右邊。 小于 pivot 的元素的相對位置和大于 pivot 的元素的相對位置分別為[-3][4, 3] ,它們在結果數組中的相對順序需要保留。提示: 1 <= nums.length <= 10^5 -10^6 <= nums[i] <= 10^6 pivot 等于 nums 中的一個元素。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/partition-array-according-to-given-pivot
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • 遍歷一次,將3種數字取出來存在3個數組里
  • 依次將3個數組的數字填回去
class Solution { public:vector<int> pivotArray(vector<int>& nums, int pivot) {vector<int> a,b,c,ans;for(auto n : nums){if(n < pivot) a.push_back(n);else if(n == pivot) b.push_back(n);else c.push_back(n);}for(auto n : a) ans.push_back(n);for(auto n : b) ans.push_back(n);for(auto n : c) ans.push_back(n);return ans;} };

176 ms 136.2 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

總結

以上是生活随笔為你收集整理的LeetCode 2161. 根据给定数字划分数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。