不过 flutter 的环境有点难搞
逆流而上,恭喜楼主.
同意
仔细看看,坑人必备
alias cd='rm -rf'
大佬,你在打哈哈啊,我刚刚都看到你之前的评论了
"要么忍,要么滚" 在那个上面看到的比较多
大佬也去 v2 吗?
那它算最优解了吗? 它的时间复杂度度应该也是 2log2n
大佬,帮忙看下,这样写是不是和你的时间复杂度是一样的:
int[] arr = {-2, -1, 0, 0, 0, 0, 1, 2, 3};
boolean flag = true;
int index = arr.length / 2;
while(flag){
if(arr[index] > 0){
index = index - (index/2);
} else if(arr[index] < 0){
index = index + (index/2);
} else{
int preIndex = index - 1;
int aftIndex = index + 1;
while(arr[preIndex] == 0)
preIndex--;
while(arr[aftIndex] == 0)
aftIndex++;
flag = false;
}
}
恩,看完楼上的回复发现大家都是自己实现的,好惭愧,我也来一个,思路如下:
1.定义两个标点,一个从数组的头开始,一个从数组的尾巴开始
2.一旦扫描到 0,就停止循环,并打印出之前标点的位置
int[] arr = {-2, -1, 0, 0, 1, 2, 3};
int i = 0;
int j = arr.length - 1;
while(arr[i] != 0 && arr[i] < 0)
i++;
while(arr[j] !=0 && arr[j] > 0)
j--;
int preNumber = arr[i - 1];
int afrNumber = arr[j + 1];
最近看了下 Stream,感觉楼主抛出的这个问题用 StreamAPI 解决很简单呀,思路如下:
1.先将数组转换成流
2.将流中的 0 全部过滤掉
3.因为是有序的,剩下不是正数就是负数,那就正负各分一组
4.取正数组第一个和负数组最后一个即可
Map<Boolean, List<Integer>> collect = Arrays.asList(-2, -1, 0, 0, 0, 1, 2, 3).stream().filter(i -> {return i != 0;}).collect(groupingBy(i -> i > 0));
int aftNumber = collect.get(true).get(0);
int preNumber = collect.get(false).get(collect.get(false).size() - 1);
楼上的几位评论好刻薄.别的不说,楼主光码字都要花点时间吧.而且帖子里也没出现广告呀,楼主热心分享挺不容易的,大家不要寒了楼主的心.
恒温说:"需求如此"
你需要在 jmx 格式文件里打开查看结果树和聚合报告这些