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
- LeetCode 41. 缺失的第一個正數LeetCode
- LeetCode題庫整理【Java】—— 7整數反轉LeetCodeJava
- leetcode 整數拆分(c++)LeetCodeC++
- LeetCode反轉整數(Python)LeetCodePython
- LeetCode(7)--.反轉整數LeetCode
- 2034 整數的個數
- 輸入一個整數,返回這個整數的位數
- LeetCode 13[羅馬數字轉整數]LeetCode
- leetcode:41. 缺失的第一個正數(困難,陣列)LeetCode陣列
- 【leetcode】劍指 Offer 16. 數值的整數次方LeetCode
- LeetCode989——陣列形式的整數加法LeetCode陣列
- LeetCode 力扣 羅馬數字轉整數LeetCode力扣
- LeetCode7.整數反轉 JavaScriptLeetCodeJavaScript
- LeetCode7:ReverseInteger(整數反轉)LeetCode
- LeetCode-8. 字串轉整數 (atoi)LeetCode字串
- 實現一個原子的正整數類:AtomicPositiveInteger
- LeetCode題庫13. 羅馬數字轉整數(c++實現)LeetCodeC++
- 20241106,LeetCode 每日一題,用 Go 實現整數迴文數判斷LeetCode每日一題Go
- LeetCode878. 第 N 個神奇數字(java)LeetCodeJava
- 實現將10個整數升序排列
- LeetCode 387. 字串中的第一個唯一字元 (Java)LeetCode字串字元Java
- LeetCode_Python(13)_羅馬數字轉整數LeetCodePython
- leetcode13題——羅馬數字轉整數LeetCode
- python-leetcode13羅馬數字轉整數PythonLeetCode
- 【LeetCode-陣列】陣列式整數加法LeetCode陣列
- LeetCode-343. 整數拆分 - 題解分析LeetCode
- LeetCode 299 猜數字遊戲 Java實現LeetCode遊戲Java
- LeetCode-278-第一個錯誤的版本LeetCode
- leetcode 191 位1的個數LeetCode
- Java整數緩衝區Java
- LeetCode每日一題:整數反轉(No.7)LeetCode每日一題
- 每日一道 LeetCode (2):整數反轉LeetCode
- LeetCode 343. 整數拆分--動態規劃LeetCode動態規劃
- 詳解Java判斷是否是整數,小數或實數的正規表示式Java
- LeetCode每日一題: 陣列形式的整數加法(No.989)LeetCode每日一題陣列
- 3069 求n個整數的和