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

โปรแกรมค้นหารายการองค์ประกอบกำลังสองในลำดับการจัดเรียงใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums ซึ่งองค์ประกอบต่างๆ จะถูกเรียงลำดับจากน้อยไปหามาก เราต้องยกกำลังสององค์ประกอบและส่งคืนผลลัพธ์ตามลำดับการจัดเรียง

ดังนั้น หากอินพุตเท่ากับ nums =[-8, -3, 0, 5, 6] เอาต์พุตจะเป็น [0, 9, 25, 36, 64]

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

  • n :=ขนาดของ nums
  • l :=0
  • r :=n - 1
  • ดัชนี :=n - 1
  • res :=รายการขนาดเท่ากับ nums และเติมด้วย 0
  • ในขณะที่ดัชนี>=0, ทำ
    • ถ้า |nums[l]|> |nums[r]| แล้วก็
      • res[ดัชนี] :=nums[l] * nums[l]
      • l :=l + 1
    • มิฉะนั้น
      • res[index] :=nums[r] * nums[r]
      • r :=r - 1
    • ดัชนี :=ดัชนี - 1
  • ผลตอบแทน

ตัวอย่าง

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

def solve(nums):
   n = len(nums)
   l = 0
   r = n - 1
   index = n - 1
   res = [0 for i in range(len(nums))]
   while index >= 0:
      if abs(nums[l]) > abs(nums[r]):
         res[index] = nums[l] * nums[l]
         l += 1
      else:
         res[index] = nums[r] * nums[r]
         r -= 1
      index -= 1

   return res

nums = [-8, -3, 0, 5, 6]
print(solve(nums))

อินพุต

[-8, -3, 0, 5, 6]

ผลลัพธ์

[0, 9, 25, 36, 64]