Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ทำให้ค่ารายการเท่ากันใน C ++


สมมติว่าเรามีรายการจำนวนเต็มที่เรียกว่า nums ตอนนี้ สมมติว่าเป็นการดำเนินการที่เราเลือกชุดย่อยของจำนวนเต็มในรายการ และเพิ่มค่าทั้งหมดทีละรายการ เราต้องหาจำนวนขั้นต่ำของการดำเนินการที่จำเป็นเพื่อให้ค่าทั้งหมดในรายการมีค่าเท่ากัน

ดังนั้นหากอินพุตเท่ากับ [1,3,5] เอาต์พุตจะเป็น 4

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ถ้าขนาดของ nums เท่ากับ 1 แล้ว −

    • คืนค่า 0

  • ยกเลิก :=0

  • maxVal :=-inf

  • minVal :=inf

  • สำหรับการเริ่มต้น i :=0 เมื่อ i <ขนาดของ nums ให้อัปเดต (เพิ่ม i ขึ้น 1) ให้ทำ -

    • maxVal :=สูงสุดของ maxVal และ nums[i]

    • minVal :=ขั้นต่ำของ minVal และ nums[i]

  • คืนค่า maxVal - minVal

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int solve(vector<int> &nums) {
      if (nums.size() == 1)
      return 0;
      int ret = 0;
      int maxVal = INT_MIN;
      int minVal = INT_MAX;
      for (int i = 0; i < nums.size(); i++) {
         maxVal = max(maxVal, nums[i]);
         minVal = min(minVal, nums[i]);
      }
      return maxVal - minVal;
   }
};
main() {
   Solution ob;
   vector<int> v = {1,3,5};
   cout << (ob.solve(v));
}

อินพุต

{1,3,5}

ผลลัพธ์

4