j**********3 发帖数: 3211 | 1 先声明一下,peak element ii 我看过网上的答案(结果是错的), 也看过本版的讨
论,最后以课件上的算法为准。
可惜,那个算法写的不是很清楚,我没看懂。。。暴露了智商哈哈。。。
所以又跑到版上请教。希望大牛们能拔刀相助
另外有个疑问:peak element i 中,边缘也可以算作peak,这样就make sense多了。
但 peak element ii的题目要求,边缘(四周一圈)好像不算peak,而网上给的答案貌
似都是算peak的,
谁来解释一下。。。
请给个举个栗子的答案! |
j**********3 发帖数: 3211 | |
l******s 发帖数: 3045 | 3 好像Leetcode上没有 II,能不能在这里描述一下? |
p*********g 发帖数: 116 | 4 我叫雷锋
import java.util.*;
public class Solution {
public List majorityElement(int[] nums) {
List res = new ArrayList<>();
if (nums == null || nums.length == 0 )
return res;
int a=0,b=0, ca=0, cb=0;
for (int i=0; i
if ( ca == 0 ) {
a = nums[i];
ca = 1;
} else if ( a == nums[i] ) {
ca++;
} else if ( cb == 0 ) {
b = nums[i];
cb = 1;
} else if ( b == nums[i] ) {
cb++;
} else {
ca--;
cb--;
}
}
ca=0;
cb=0;
for (int i=0; i
if ( nums[i] == a )
ca++;
else if (nums[i] == b)
cb++;
}
if (ca>nums.length/3)
res.add(a);
if (cb>nums.length/3)
res.add(b);
return res;
}
} |
j**********3 发帖数: 3211 | 5 谢谢雷锋,我要给你挑错!
【在 p*********g 的大作中提到】 : 我叫雷锋 : import java.util.*; : public class Solution { : public List majorityElement(int[] nums) { : List res = new ArrayList<>(); : if (nums == null || nums.length == 0 ) : return res; : : int a=0,b=0, ca=0, cb=0; : for (int i=0; i
|
x*******9 发帖数: 138 | 6 从概率上来说,找到一个peak点只需要随机找5次。
不过可能会有corner case卡掉这种取巧的算法。 |
j**********3 发帖数: 3211 | 7 雷锋,这个是一维的,请问有没有二维的?
【在 p*********g 的大作中提到】 : 我叫雷锋 : import java.util.*; : public class Solution { : public List majorityElement(int[] nums) { : List res = new ArrayList<>(); : if (nums == null || nums.length == 0 ) : return res; : : int a=0,b=0, ca=0, cb=0; : for (int i=0; i
|
j**********0 发帖数: 20 | |
A*******e 发帖数: 2419 | 9 什么是peak element 2?
【在 j**********3 的大作中提到】 : 先声明一下,peak element ii 我看过网上的答案(结果是错的), 也看过本版的讨 : 论,最后以课件上的算法为准。 : 可惜,那个算法写的不是很清楚,我没看懂。。。暴露了智商哈哈。。。 : 所以又跑到版上请教。希望大牛们能拔刀相助 : 另外有个疑问:peak element i 中,边缘也可以算作peak,这样就make sense多了。 : 但 peak element ii的题目要求,边缘(四周一圈)好像不算peak,而网上给的答案貌 : 似都是算peak的, : 谁来解释一下。。。 : 请给个举个栗子的答案!
|