- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
Problem Statement
There are N plants in a garden. Each of these plants has been added with some amount of pesticide. After each day, if any plant has more pesticide than the plant at its left, being weaker than the left one, it dies. You are given the initial values of the pesticide in each plant. Print the number of days after which no plant dies, i.e. the time after which there are no plants with more pesticide content than the plant to their left.
Input Format
The input consists of an integer N. The next line consists of N integers describing the array P where P[i] denotes the amount of pesticide in plant i.
Constraints
1 ≤ N ≤ 100000
0 ≤ P[i] ≤ 109Output Format
Output a single value equal to the number of days after which no plants die.
Sample Input
7 6 5 8 4 7 10 9
Sample Output
2
Explanation
Initially all plants are alive.
Plants = {(6,1), (5,2), (8,3), (4,4), (7,5), (10,6), (9,7)}.
Plants[k] = (i,j) => jth plant has pesticide amount = i.
After the 1st day, 4 plants remain as plants 3, 5, and 6 die.
Plants = {(6,1), (5,2), (4,4), (9,7)}.
After the 2nd day, 3 plants survive as plant 7 dies.
Plants = {(6,1), (5,2), (4,4)}.
After the 3rd day, 3 plants survive and no more plants die.
Plants = {(6,1), (5,2), (4,4)}.
After the 2nd day the plants stop dying.
挑战链接: HackerRank : Poisonous Plant
我的提交: HackerRank Submission Link
到目前为止我的代码:
total = int(raw_input())
plants = map(int,raw_input().split())
num_deaths = 1
day = 0
while num_deaths > 0:
num_deaths = 0
temp_plants = []
day += 1
for i in range(1, len(plants)):
if plants[i] > plants[i - 1]:
num_deaths += 1
continue
else:
temp_plants.append(plants[i])
plants = temp_plants
print(day - 1)
它仍然无法通过一些测试用例。有什么建议/建议吗?
最佳答案
查看您的 Temp_plants
数组,您使用 []
对其进行了初始化。但是,由于您是从索引 1 开始迭代,因此始终排除索引 0 中的植物,因此您必须使用 [plant[0]]
进行初始化,因为最左边的植物始终包含在内。
示例:1 5 4 3 2
实际过程
回答=4
您的代码
回答=1
这是一个可以产生正确输出但速度相当慢的工作代码。它是正确的,但是 O(n^2) 使某些测试用例超时。这与您的算法基本相同。
n= input()
plant=map(int,raw_input().split())
count=0
# At each iteration the following loop updates the plant
# list by removing weak plants and count counts no. of steps
# temp temporarily stores surviving plants
while(True):
temp=[plant[0]]
for i in range(1,len(plant)):
if plant[i]<=plant[i-1]:
temp.append(plant[i])
# If temp and plants have same len, then no plant has
# been removed, so, the process ended.
if(len(temp)==len(plant)): break
plant=temp
count+=1
print count
我正在考虑一种应该可行的更快的动态方法,但尚未实现。
关于python - HackerRank 挑战 : Find total number of days Plants die,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31778691/
这是在 MacOS 上通过自制软件安装了 PHP 8.1.10 ... 只是一个空白的 index.php 代码,只有这段代码...... 然后 .. 在我的浏览器中呈现以查看... Fatal
我相信所有这些(甚至是 die() 或 die(0))都是相同的。如果它们不相同,那么哪个更适合成功退出脚本?如果它们相同,是否有任何首选标准表明脚本成功完成?我倾向于使用 exit;. 编辑:所有答
在对项目中一个非常模糊的错误进行了一些认真的调试之后,我能够得到这个简短的代码。一个没有死亡的死亡调用。 该问题仅在调用 script.pl 时发生。如果直接调用Class_A,那么die调用就会成功
注意:我正在使用输出缓冲。它只是包含在 head() 和 foot() 函数中。 我使用以下模板在我当前的 PHP 项目中创建页面: 以下示例是否适合使用 die()?另外,如果有的话,这可能给
我想这样写: die "Error in file $0 line number $line_number_of_this_cmd_in_file \n"; 在我的 perl 脚本文件中。 有什么帮助
下面是我尝试执行的代码 $a=0; if($a==0){die print"zero"}; 我得到如下输出 1 at test.pl line 2 Zero 我想知道首先打印的 1 是什么,
我使用以下代码在 perl 中运行一个简单的文件测试: my $f1 = "$pre_file"; unless (-e $1) { print "\n Pre_check file does n
我目前正在制作一个注册页面。它包括密码散列和验证。当我使用“die”时,它会停止表单并显示错误。我想在同一页面上显示错误。 $_POST['username'] ); try
我总是在发出 die() 命令之前调用 mysqli_close()。 这很乏味,有时会被遗忘,但我想确定 die 命令是关闭所有 mysql 连接还是仍然保持打开状态? 我无法通过 PHP 检查,因
让 die() 存在于生产环境中是否被认为是不好的做法?刚好看到这篇文章http://www.phpfreaks.com/blog/or-die-must-die作者抨击在生产环境中使用这种东西的人。
当我刚开始学习 PHP 时,我会编写类似于这里的查询语句: mysql_query("SELECT * FROM `table`") or die(mysql_error()); 目前最好的方法是什么
有没有人在 Python 中使用类似的东西: def die(error_message): raise Exception(error_message) ... check_somethin
我正在使用以下行进行一个简单的系统调用,该调用有效: system ("mkdir -p Purged") or die "Failed to mkdir." ; 执行脚本确实会进行系统调用,我可以找
我有一个通过 die 引发异常的脚本.当我捕捉到异常时,我想输出没有附加位置信息的消息。 这个脚本: #! /usr/bin/perl -w use strict; eval { die "M
在Perl中,如果程序因错误退出,则可以编写$SIG{__DIE__}处理程序来执行代码。 bash是否提供类似的功能? 这是我要尝试的操作:我有一个bash脚本,该脚本创建一个新目录并调用几个命令,
自从我创建 HTA 代码以来,我一直使用 IE :( 我们需要将更改事件捕获在 中元素,但你猜怎么着,IE 不支持该事件。 所以我创造了一种模仿它的方法。与 单击时显示 略低于。那部分工作正常。问题
this => set_time_limit (), Die() 可以用来取消文件上传吗。 即当用户单击按钮时,set_time_limit () 函数将执行。 它会停止上传吗? 最佳答案 您最好使用
我正在开发一些项目。我想控制不同的错误。我知道在所有流行的框架和 php 项目中都有不同的异常。但我认为这不是必需的工作。如果发生错误,我们可以用我们的消息制作 die()。1. Exceptions
最近我参加了 Jeffrey Richter 的有关 .NET 的培训类(class)。他提到了一种编码策略“死亡很棒”。也就是说,即使在程序或事件循环的根部也不要编写“catch (Exceptio
假设我们的类中有以下代码: //class code TextBox t = new TextBox(); ListBox l = new ListBox(); 我们有两种可能的情况: 首先,我们将
我是一名优秀的程序员,十分优秀!