leetcode:確實的第一個整數(java)
package LeetCode;
import java.util.Arrays;
public class FirstMissingPositive {
public int firstMissingPositive(int[] nums) {
/* if (nums.length<=0)return 1;
if (nums.length==1){
if (nums[0]>0){
if (nums[0]>1)return 1;else return nums[0]+1;
}else return 1;
}
Arrays.sort(nums);
for (int i = 0; i <nums.length-1 ; i++) {
if (nums[i]>0){
if (nums[i+1]-1==nums[i]){
if (nums[i]>1)return 1;else continue;
}else {
return nums[i]+1;
}
}
}
return nums[nums.length-1]+1;*/
//處理特殊情況的時候 陣列為空和陣列為一的時候
if (nums.length <= 0) return 1;
if (nums.length == 1) {
if (nums[0] > 0) {
if (nums[0] > 1) return 1;
else return nums[0] + 1;
} else return 1;
}
Arrays.sort(nums);
//為了記住最後一個第一個非負數的整數 如果有負數的情況下
int m = 0;
for (int i = 0; i < nums.length - 1; i++) {
if (nums[i] < 0) {
m = i+1;
}
//如果有負數的情況下的第一個數大於1的話直接返回1 同時也可以判斷0的時候是否大於1
//總結來說就是看最前面的那一個是否大於1
if (nums[m]>1)return 1;
//看當前這個數+1和下一個數的關係
if (nums[i] + 1 >= nums[i + 1]) {
continue;
} else {
if (nums[i] + 1>0) {
return nums[i] + 1;
}else continue;
}
}
return nums[nums.length - 1] + 1;
}
public static void main(String[] args) {
FirstMissingPositive a = new FirstMissingPositive();
int[] b = {3,4,-1,1
};
System.out.println(a.firstMissingPositive(b));
}
}
相關文章
- 詳解 LeetCode_007_整數反轉(Java 實現)LeetCodeJava
- 【LeetCode】1304. 和為零的N個唯一整數(Java)LeetCodeJava
- java求一個整數的最小因子Java
- LeetCode 41. 缺失的第一個正數LeetCode
- LeetCode題庫整理【Java】—— 7整數反轉LeetCodeJava
- 演算法學習-第一個缺失的正整數演算法
- 輸入一個整數,返回這個整數的位數
- Java判斷一個整數是否為奇數Java
- 2034 整數的個數
- LeetCode 13[羅馬數字轉整數]LeetCode
- leetcode 整數拆分(c++)LeetCodeC++
- LeetCode(7)--.反轉整數LeetCode
- 實現將10個整數升序排列
- LeetCode 力扣 羅馬數字轉整數LeetCode力扣
- 把字串轉換成整數(Java實現)字串Java
- Java判斷一個正整數是不是2的乘方Java
- LeetCode反轉整數(Python)LeetCodePython
- [LeetCode] Reverse Integer 翻轉整數LeetCode
- LeetCode題庫13. 羅馬數字轉整數(c++實現)LeetCodeC++
- 【leetcode】劍指 Offer 16. 數值的整數次方LeetCode
- leetcode:41. 缺失的第一個正數(困難,陣列)LeetCode陣列
- 實現一個原子的正整數類:AtomicPositiveInteger
- leetcode13題——羅馬數字轉整數LeetCode
- [LeetCode] Integer to Roman 整數轉化成羅馬數字LeetCode
- [LeetCode] Roman to Integer 羅馬數字轉化成整數LeetCode
- LeetCode989——陣列形式的整數加法LeetCode陣列
- java的第一個程式Java
- LeetCode7.整數反轉 JavaScriptLeetCodeJavaScript
- LeetCode7:ReverseInteger(整數反轉)LeetCode
- LeetCode-8. 字串轉整數 (atoi)LeetCode字串
- Java整數緩衝區Java
- 在Java中實現浮點數的精確計算 (轉)Java
- 詳解Java判斷是否是整數,小數或實數的正規表示式Java
- LeetCode_Python(13)_羅馬數字轉整數LeetCodePython
- python-leetcode13羅馬數字轉整數PythonLeetCode
- LeetCode878. 第 N 個神奇數字(java)LeetCodeJava
- Java列印所有整數中2的乘方Java
- LeetCode 387. 字串中的第一個唯一字元 (Java)LeetCode字串字元Java