- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我被这个问题困扰了。我的代码通过了示例中给出的所有测试用例,但代码中存在一些错误。错误之处请指出。
问题陈述 ( https://www.hackerearth.com/problem/algorithm/remove-friends-5 )
获得博士学位后,克里斯蒂已成为大学里的名人,她的 Facebook 个人资料上充满了好友请求。作为一个好女孩,克里斯蒂接受了所有的请求。
现在库尔迪普嫉妒她从其他男人那里得到的所有关注,所以他要求她从她的 friend 列表中删除一些男人。为了避免“场面”,克里斯蒂决定从她的 friend 列表中删除一些 friend ,因为她知道她所拥有的每个 friend 的受欢迎程度,所以她使用以下算法来删除 friend 。
算法删除(好友):
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(Christie 当前拥有的 friend 数量)和 K(Christie 决定删除的 friend 数量)。下一行包含她 friend 的受欢迎程度,并用空格分隔。
输出:对于每个测试用例,打印 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();
}}
最佳答案
您读取输入数据的方式有缺陷:您的实现假设每行一个整数,但这与问题描述不符:
First line of each test case contains N, the number of friends Christie currently has and K ,the number of friends Christie decides to delete. Next lines contains popularity of her friends separated by space.
不使用BufferedReader
,我建议尝试使用 Scanner
代替,它更简单,像这样的东西:
Scanner scanner = new Scanner(System.in);
int t = scanner.nextInt();
for (int i = 0; i < t; i++) {
int friendsNum = scanner.nextInt();
int toDeleteNum = scanner.nextInt();
// ...
for (int j = 0; j < friendsNum; j++) {
int current = scanner.nextInt();
// ...
}
// ...
}
修复输入解析后,一些测试将通过。
但是由于另一个问题,其中许多仍然会失败,超出了时间限制。那是因为你的算法不够高效。在最坏的情况下,对于每个要删除的好友,它都会迭代,直到好友列表末尾。
可能有不同的算法:
这是它的核心内容:
for (int j = 0; j < friendsNum; j++) {
int current = scanner.nextInt();
while (deleted < toDeleteNum && !stack.isEmpty() && stack.peek() < current) {
stack.pop();
deleted++;
}
stack.push(current);
}
while (deleted < toDeleteNum) {
stack.pop();
deleted++;
}
关于java - Hackerearth 删除好友 : Runtime Error - NZEC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38577572/
reqwest v0.9 将 serde v1.0 作为依赖项,因此实现 converting serde_json errors into reqwest error . 在我的代码中,我使用 se
我有这个代码: let file = FileStorage { // ... }; file.write("Test", bytes.as_ref()) .map_err(|e| Mu
我只是尝试用angular-cli创建一个新项目,然后运行服务器,但是它停止并显示一条有趣的消息:Error: No errors。 我以这种方式更新了(希望有帮助):npm uninstall -g
我从我的 javascript 发送交易 Metamask 打开传输对话框 我确定 i get an error message in metamask (inpage.js:1 MetaMask -
这个问题在这里已经有了答案: How do you define custom `Error` types in Rust? (3 个答案) How to get a reference to a
我想知道两者之间有什么大的区别 if let error = error{} vs if error != nil?或者只是人们的不同之处,比如他们如何用代码表达自己? 例如,如果我使用这段代码: u
当我尝试发送超过 50KB 的图像时,我在 Blazor 服务器应用程序上收到以下错误消息 Error: Connection disconnected with error 'Error: Serv
我有一个error-page指令,它将所有异常重定向到错误显示页面 我的web.xml: [...] java.lang.Exception /vi
我有这样的对象: address: { "phone" : 888, "value" : 12 } 在 WHERE 中我需要通过 address.value 查找对象,但是在 SQL 中有函数
每次我尝试编译我的代码时,我都会遇到大量错误。这不是我的代码的问题,因为它在另一台计算机上工作得很好。我尝试重新安装和修复,但这没有帮助。这是整个错误消息: 1>------ Build starte
在我的代码的类部分,如果我写一个错误,则在不应该的情况下,将有几行报告为错误。我将'| error'放在可以从错误中恢复的良好/安全位置,但是我认为它没有使用它。也许它试图在某个地方恢复中间表情? 有
我遇到了 csv 输入文件整体读取故障的问题,我可以通过在 read_csv 函数中添加 "error_bad_lines=False" 来删除这些问题来解决这个问题。 但是我需要报告这些造成问题的文
在 Spring 中,验证后我们在 controller 中得到一个 BindingResult 对象。 很简单,如果我收到验证错误,我想重新显示我的表单,并在每个受影响的字段上方显示错误消息。 因此
我不知道出了什么问题,因为我用 Java 编程了大约一年,从来没有遇到过这个错误。在一分钟前在 Eclipse 中编译和运行工作,现在我得到这个错误: #A fatal error has been
SELECT to_char(messages. TIME, 'YYYY/MM/DD') AS FullDate, to_char(messages. TIME, 'MM/DD
我收到这些错误: AnonymousPath\Anonymized.vb : error BC30037: Character is not valid. AnonymousPath\Anonymiz
我刚刚安装了 gridengine 并在执行 qstat 时出现错误: error: commlib error: got select error (Connection refused) erro
嗨,我正在学习 PHP,我从 CRUD 系统开始,我在 Windows 上安装了 WAMP 服务器,当我运行它时,我收到以下错误消息。 SCREAM: Error suppression ignore
我刚刚开始一个新项目,我正在学习核心数据教程,可以找到:https://www.youtube.com/watch?v=zZJpsszfTHM 我似乎无法弄清楚为什么会抛出此错误。我有一个名为“Exp
当我使用 Jenkins 运行新构建时,出现以下错误: "FilePathY\XXX.cpp : fatal error C1853: 'FilePathZ\XXX.pch' precompiled
我是一名优秀的程序员,十分优秀!