落单的数IV --- lintcode 824
2018-03-09 15:17
211 查看
点击打开原题
已知:
给定一个特殊的数组,其中只包含一个单独的数,其他的数字都是成双且相互靠近出现的。求出这个单独的数。
思路:
先排除特殊情况,如果第一个数和第二个数不等,那么直接返回第一个数,倒数第一个和倒数第二个也同理。
然后,偶数位X上的数字必须与奇数位X+1上的数字相等,如果不相等,那么X上的数字就是我们要找到答案。
11 22 33 44 55 67 78 89 9
public class Solution {
/**
* @param nums: The number array
* @return: Return the single number
*/
public int getSingleNumber(int[] nums) {
if (nums[0] != nums[1]) {
return nums[0];
}
if (nums[nums.length - 1] != nums[nums.length - 2]) {
return nums[nums.length - 1];
}
for (int i = 2; i <= nums.length - 4; i += 2) {
if (nums[i] != nums[i + 1]) {
return nums[i];
}
}
return -1;
}
}
已知:
给定一个特殊的数组,其中只包含一个单独的数,其他的数字都是成双且相互靠近出现的。求出这个单独的数。
思路:
先排除特殊情况,如果第一个数和第二个数不等,那么直接返回第一个数,倒数第一个和倒数第二个也同理。
然后,偶数位X上的数字必须与奇数位X+1上的数字相等,如果不相等,那么X上的数字就是我们要找到答案。
11 22 33 44 55 67 78 89 9
public class Solution {
/**
* @param nums: The number array
* @return: Return the single number
*/
public int getSingleNumber(int[] nums) {
if (nums[0] != nums[1]) {
return nums[0];
}
if (nums[nums.length - 1] != nums[nums.length - 2]) {
return nums[nums.length - 1];
}
for (int i = 2; i <= nums.length - 4; i += 2) {
if (nums[i] != nums[i + 1]) {
return nums[i];
}
}
return -1;
}
}
相关文章推荐
- [LintCode]82.落单的数
- Lintcode落单的数
- LintCode_082_落单的数
- LintCode 落单的数 II
- lintcode 落单的数 II
- LintCode_082_落单的数
- 【LintCode】 Single Number 落单的数
- 落单的数 IV -LintCode
- 【LintCode 简单】82. 落单的数
- lintcode 中等题:Singleton number II 落单的数 II
- lintcode,落单的数 II
- lintcode-83-落单的数 II
- lintcode--l落单的数
- lintcode-84-落单的数 III
- [LintCode] 落单的数 III Single Number III
- Lintcode 落单的数 II
- [Lintcode] #82 落单的数
- LintCode 第82题 落单的数 【贪心算法】
- lintcode-落单的数II-83
- Lintcode—落单的数