สมมติว่าเรามีเมทริกซ์ 2 มิติ โดยที่แต่ละแถวและคอลัมน์ถูกจัดเรียงตามลำดับที่ไม่ลดลง เราต้องตรวจสอบว่าเป้าหมายที่ระบุอยู่ภายในนั้นหรือไม่
ดังนั้นหากอินพุตเป็นแบบ
2 | 4 | 30 |
3 | 4 | 31 |
6 | 6 | 32 |
และเป้าหมาย =31 แล้วผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- col :=ขนาดคอลัมน์ของเมทริกซ์ - 1
- สำหรับฉันในช่วง 0 ถึงขนาดแถวของเมทริกซ์ ทำ
- ในขณะที่ matrix[i, col]> target และ col>=0, do
- col :=col - 1
- ถ้า matrix[i, col] เหมือนกับเป้าหมาย แล้ว
- คืนค่า True
- ในขณะที่ matrix[i, col]> target และ col>=0, do
- คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, matrix, target): col = len(matrix[0]) - 1 for i in range(len(matrix)): while matrix[i][col] > target and col >= 0: col = col - 1 if matrix[i][col] == target: return True return False ob = Solution() matrix = [ [2, 4, 30], [3, 4, 31], [6, 6, 32] ] target = 31 print(ob.solve(matrix, target))
อินพุต
matrix = [ [2, 4, 30], [3, 4, 31], [6, 6, 32]] target = 31
ผลลัพธ์
True