关注
import java.util.*;
public class Main{
public static void main(String[] args) {
int[] nums = {6, 1, 5, 3, 1, 1, 2, 2, 2, 2, 1, 3, 3, 4, 4, 4, 5, 5, 5};
delSameNum(nums);
}
public static void delSameNum(int[] nums) {
if (nums == null || nums.length == 0)
return;
LinkedList<Integer> stack = new LinkedList<>();
int count = 1;
for(int i = 0; i < nums.length; i++) {
if (!stack.isEmpty()) {
if (stack.peek() == nums[i]) {
stack.push(nums[i]);
count++;
if (i == nums.length - 1 && count >= 3) {
while (count-- != 0)
stack.pop();
}
} else if ((stack.peek() != nums[i]) && count >= 3) {
while (count-- != 0)
stack.pop();
count = 1;
if (stack.size() > 1) {
int tmp = stack.pop();
if (tmp == stack.peek())
count++;
stack.push(tmp);
}
if (!stack.isEmpty() && stack.peek() == nums[i]) {
stack.push(nums[i]);
count++;
if (i == nums.length - 1 && count >= 3) {
while (count-- != 0)
stack.pop();
}
} else {
stack.push(nums[i]);
}
} else {
count = 1;
stack.push(nums[i]);
}
} else
stack.push(nums[i]);
}
int[] arr = new int[stack.size()];
for (int i = arr.length - 1; i >= 0; i--) {
arr[i] = stack.pop();
}
for (int i : arr) {
System.out.print(i + " ");
}
System.out.println();
}
}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 这个offer值得去吗? #
40839次浏览 258人参与
# 什么专业适合考公 #
69378次浏览 344人参与
# 在爱玛,骑向未来 #
44102次浏览 432人参与
# 除了线上,还能去哪些地方投简历 #
18122次浏览 151人参与
# 机械人,说说你的烦心事 #
148308次浏览 1160人参与
# 如果春招能重来,我会___ #
33380次浏览 324人参与
# 毕业季,给职场新人一些建议 #
220936次浏览 2598人参与
# 工作压力大,你会干什么? #
82158次浏览 705人参与
# 选offer应该考虑哪些因素 #
172308次浏览 1056人参与
# 工作后,你落下了哪些病根 #
42243次浏览 292人参与
# 机械人,秋招第一次笔试的企业是哪家? #
103331次浏览 707人参与
# 巨人网络工作体验 #
76533次浏览 507人参与
# 如何缓解入职前的焦虑 #
290611次浏览 1505人参与
# 携程笔试 #
173972次浏览 916人参与
# 我的第一份实习怎么找的 #
288408次浏览 2106人参与
# 重来一次,我还会选择这个专业吗 #
466366次浏览 3983人参与
# 你被哪些公司挂了? #
197724次浏览 1076人参与
# 职场新人体验 #
192609次浏览 1239人参与
# 实习生的蛐蛐区 #
957091次浏览 4839人参与
# 实习生工资多少才算正常? #
75801次浏览 525人参与
# 应届生,你找到工作了吗 #
173937次浏览 898人参与
