做機械的網(wǎng)站有哪些軟文營銷實施背景
給定一個包含 n + 1 個整數(shù)的數(shù)組 nums ,其數(shù)字都在 [1, n] 范圍內(nèi)(包括 1 和 n),可知至少存在一個重復(fù)的整數(shù)。
假設(shè) nums 只有 一個重復(fù)的整數(shù) ,返回 這個重復(fù)的數(shù) 。
你設(shè)計的解決方案必須 不修改 數(shù)組 nums 且只用常量級 O(1) 的額外空間。
腦子不好使了,只能這樣解決了!
class Solution {public int findDuplicate(int[] nums) {int out = -1;for(int i = 0; i < nums.length; i++){//下標(biāo)保證為正int index = Math.abs(nums[i]);//如果此下標(biāo)的數(shù)已經(jīng)為負(fù)數(shù),說明翻轉(zhuǎn)一次了if(nums[index] < 0)out = index;//將此下標(biāo)的數(shù)變?yōu)樨?fù)數(shù)nums[index] = -nums[index];}//將數(shù)組變回去for(int i = 0; i < nums.length; i++)nums[i] = Math.abs(nums[i]);return out;}
}