java黑客删除好友:运行时错误NZEC
我被这个问题困住了。我的代码通过了示例中给出的所有测试用例,但代码中存在一些错误。请指出错误
问题陈述(https://www.hackerearth.com/problem/algorithm/remove-friends-5)
在获得博士学位后,克里斯蒂在她的大学里成了名人,她的facebook档案中充满了朋友请求。作为一个好女孩,克里斯蒂接受了所有的请求
现在库尔德普嫉妒她从其他男人那里得到的所有关注,所以他要求她从朋友名单中删除一些男人。 为了避免“场景”,克里斯蒂决定从她的朋友列表中删除一些朋友,因为她知道每个朋友的人气,她使用以下算法删除一个朋友
算法删除(朋友):
DeleteFriend=false
for i = 1 to Friend.length-1
if (Friend[i].popularity < Friend[i+1].popularity)
delete i th friend
DeleteFriend=true
break
if(DeleteFriend == false)
delete the last friend
输入: 第一行包含T个测试用例。每个测试用例的第一行包含N,克里斯蒂当前拥有的朋友数和K,克里斯蒂决定删除的朋友数。接下来的几行是她的朋友们的人气,他们被空间隔开
输出: 对于每个测试用例,打印N-K数字,代表删除K个好友后克里斯蒂好友的受欢迎程度
注释 删除K个好友后的好友顺序应保持为输入中给出的顺序
我的解决方案
class TestClass {
static class Node
{
int data;
Node next;
Node(int d)
{
data = d;
next = null;
}}
static Node head = null;
public static void main(String args[] ) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
int cases = Integer.parseInt(line);
for (int i = 0; i < cases; i++) {
line = br.readLine();
int friends = Integer.parseInt(line);
line = br.readLine();
int delete = Integer.parseInt(line);
head = null;
Node p =null;
for(int j=0;j < friends;j++){
line = br.readLine();
int temp = Integer.parseInt(line);
if(head == null){
head = new Node(temp);
p = head;
}
else{
Node q = new Node(temp);
p.next = q;
p = q;
}}
delete_friend(head , delete);
print_list(head);
}}
static void delete_friend(Node h, int delete){
Node p = head;
Node q = null;
int flag = 0;
for (int x = 1; x<=delete;x++){
p = head;
flag = 0;
q = p.next;
while(p.next != null){
q = p.next;
if(p.data < q.data){
p.data = q.data;
p.next = q.next;
flag=1;
p = head;
break;
}
if (flag == 0 && q.next == null){
if (p.data >= q.data) {
p.next = null;
break;
}}
p = p.next;
}}}
static void print_list(Node head){
Node tnode = head;
while (tnode != null)
{
System.out.print(tnode.data+" ");
tnode = tnode.next;
}
System.out.println();
}}
# 1 楼答案
我对这个问题很有兴趣。我不知道为什么
https://www.hackerearth.com/problem/algorithm/remove-friends-5/
# 2 楼答案
如果你能分享你所犯的错误,这会有所帮助。 你的
br.readLine()
正在读取包含好友数和要删除的好友数的完整行,并对其进行解析以获得正确的好友数,这将给出你的错误。尝试使用扫描仪或br.read()
一次读取一个输入,看看这是否解决了您的问题