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

คำนำหน้า K ใน Python


สมมติว่าเรามีรายการตัวเลข nums และจำนวนเต็ม k เราต้องหาค่าสูงสุดที่เป็นไปได้ i โดยที่ nums[0] + nums[1] + ... + nums[i] ≤ k เราจะส่งคืน -1 หากไม่มี i ที่ถูกต้อง

ดังนั้น ถ้าอินพุตเป็น nums =[4, -7, 5, 2, 6], k =5 ผลลัพธ์จะเป็น 3 ดัชนีจะเป็น 3 เหมือนกับว่าเราบวก 4+(-7)+5+2 =4 นี่น้อยกว่า k ถ้าเราเพิ่มองค์ประกอบสุดท้าย มันจะไม่น้อยกว่า k ดังนั้นดัชนีจึงเป็น 3

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

  • สำหรับฉันในช่วง 1 ถึงขนาดของ nums - 1 ทำ
    • nums[i] :=nums[i] + nums[i-1]
  • สำหรับ i ในขนาดช่วงของ nums -1 ถึง -1, ลดลง 1, do
    • ถ้า nums[i]<=k แล้ว
      • คืนผม
  • คืน -1

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

ตัวอย่าง

class Solution:
   def solve(self, nums, k):
      for i in range(1,len(nums)):
         nums[i]+=nums[i-1]
         for i in range(len(nums)-1,-1,-1):
            if nums[i]<=k:
                return i
      return -1
ob = Solution()
nums = [4, -7, 5, 2, 6]
k = 5
print(ob.solve(nums, k))

อินพุต

[4, -7, 5, 2, 6], 5

ผลลัพธ์

3