Python中檢查陣列元素是否連續(O(n)時間和O(1)空間)(處理正數和負數)
假設我們有一個名為nums的無序數字陣列。我們必須檢查它是否包含連續的值,它也應該支援負數。
因此,如果輸入類似於nums = [-3, 5, 1, -2, -1, 0, 2, 4, 3],則輸出為true,因為元素為3, 4, 5, 6, 7, 8。
為了解決這個問題,我們將遵循以下步驟:
- size := nums的大小
- init_term := inf (無窮大)
- for i in range 0 to size:
- if nums[i] < init_term:
- init_term := nums[i]
- if nums[i] < init_term:
- ap_sum := ((size * (2 * init_term + (size - 1) * 1)) / 2)的商
- total := nums所有元素的和
- 如果ap_sum與total相同則返回true,否則返回false
讓我們看看下面的實現,以便更好地理解:
示例
def solve(nums): size = len(nums) init_term = 999999 for i in range(size): if nums[i] < init_term: init_term = nums[i] ap_sum = (size * (2 * init_term + (size - 1) * 1)) // 2 total = sum(nums) return ap_sum == total nums = [-3, 5, 1, -2, -1, 0, 2, 4, 3] print(solve(nums))
輸入
[-3, 5, 1, -2, -1, 0, 2, 4, 3]
輸出
True
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP