【458. 可怜的小猪】有 buckets 桶液体,其中 正好 有一桶含有毒药,其余装的都是水。它们从外观看起来都一样。为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过观察猪是否会死进行判断。不幸的是,你只有 minutesToTest 分钟时间来确定哪桶液体是有毒的。喂猪的规则如下:选择若干活猪进行喂养可以允许小猪同时饮用任意数量的桶中的水,并且该过程不需要时间。小猪喝完水后,必须有 minutesToDie 分钟的冷却时间。在这段时间里,你只能观察,而不允许继续喂猪。过了 minutesToDie 分钟后,所有喝到毒药的猪都会死去,其他所有猪都会活下来。重复这一过程,直到时间用完。给你桶的数目 buckets ,minutesToDie 和 minutesToTest ,返回在规定时间内判断哪个桶有毒所需的 最小 猪数。示例 1:输入:buckets = 1000, minutesToDie = 15, minutesToTest = 60输出:5示例 2:输入:buckets = 4, minutesToDie = 15, minutesToTest = 15输出:2示例 3:输入:buckets = 4, minutesToDie = 15, minutesToTest = 30输出:2 提示:1 = 10001 = 100来源:力扣(LeetCode)链接:https://t.cn/A6x6vZzS著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
Swift
import UIKitclass Solution { func poorPigs(_ buckets: Int, _ minutesToDie: Int, _ minutesToTest: Int) - Int { let states = minutesToTest / minutesToDie + 1// var pigs = 0// while pow(Double(states), Double(pigs)) Double(buckets) {//pigs += 1// }// return pigs return Int(ceil(log(Double(buckets)) / log(Double(states)))) }}print(Solution().poorPigs(1000, 15, 60))print(Solution().poorPigs(4, 15, 15))print(Solution().poorPigs(4, 15, 30))
题解
Swift
import UIKitclass Solution { func poorPigs(_ buckets: Int, _ minutesToDie: Int, _ minutesToTest: Int) - Int { let states = minutesToTest / minutesToDie + 1// var pigs = 0// while pow(Double(states), Double(pigs)) Double(buckets) {//pigs += 1// }// return pigs return Int(ceil(log(Double(buckets)) / log(Double(states)))) }}print(Solution().poorPigs(1000, 15, 60))print(Solution().poorPigs(4, 15, 15))print(Solution().poorPigs(4, 15, 30))
把黄庭经一样的字归纳了一下,一共430个字[苦涩]通临完这一边要好好练单字,争取今年干完。整理结果和代码都备份一下,以免下次找不到
import pandas as pd
word = pd.read_excel('黄庭经.xlsx')
word1 = word.melt(id_vars = 'row')
word1 = word1.dropna(axis=0)
word1['num']= word1['row'].str.cat(word1['variable'])
del word1['row']
del word1['variable']
def concat_func(x):
return pd.Series({
'num':','.join(x['num']),
}
)
word1.sort_values(by=["value","num"],inplace=True,ascending=[True,True])
word2=word1.groupby(word1['value']).apply(concat_func)
word2.to_excel('黄庭经1.xlsx')
import pandas as pd
word = pd.read_excel('黄庭经.xlsx')
word1 = word.melt(id_vars = 'row')
word1 = word1.dropna(axis=0)
word1['num']= word1['row'].str.cat(word1['variable'])
del word1['row']
del word1['variable']
def concat_func(x):
return pd.Series({
'num':','.join(x['num']),
}
)
word1.sort_values(by=["value","num"],inplace=True,ascending=[True,True])
word2=word1.groupby(word1['value']).apply(concat_func)
word2.to_excel('黄庭经1.xlsx')
问题:C++教程之异常规范的使用建议#开课吧# #程序#
异常规范的初衷是好的,它希望让程序员看到函数的定义或声明后,立马就知道该函数会抛出什么类型的异常,这样程序员就可以使用try-catch来捕获了。如果没有异常规范,程序员必须阅读函数源码才能知道函数会抛出什么异常。
不过这有时候也不容易做到。例如,func_outer()函数可能不会引发异常,但它调用了另外一个函数func_inner(),这个函数可能会引发异常。再如,您编写的函数调用了老式的库函数,此时不会引发异常,但是库更新以后这个函数却引发了异常。总之,异常规范的初衷实现起来有点困难,所以大家达成的一致意见是,最好不要使用异常规范。
异常规范是C++98新增的一项功能,但是后来的C++11已经将它抛弃了,不再建议使用。
另外,各个编译器对异常规范的支持也不一样,请看下面的代码:
#include
#include
#include
using namespace std;
void func()throw(char*, exception){
throw 100;
cout<<"[1]This statement will not be executed."<}
int main(){
try{
func();
}catch(int){
cout<<"Exception type: int"< }
return 0;
}
在GCC下,这段代码运行到第7行时程序会崩溃。虽然func()函数中发生了异常,但是由于throw限制了函数只能抛出char*、exception类型的异常,所以try-catch将捕获不到异常,只能交给系统处理,终止程序。
在Visual C++下,输出结果为Exception type:int,这说明异常被成功捕获了。在Visual C++中使用异常规范虽然没有语法错误,但是也没有任何效果,Visual C++会直接忽略异常规范的限制,函数可以抛出任何类型的异常。
异常规范的初衷是好的,它希望让程序员看到函数的定义或声明后,立马就知道该函数会抛出什么类型的异常,这样程序员就可以使用try-catch来捕获了。如果没有异常规范,程序员必须阅读函数源码才能知道函数会抛出什么异常。
不过这有时候也不容易做到。例如,func_outer()函数可能不会引发异常,但它调用了另外一个函数func_inner(),这个函数可能会引发异常。再如,您编写的函数调用了老式的库函数,此时不会引发异常,但是库更新以后这个函数却引发了异常。总之,异常规范的初衷实现起来有点困难,所以大家达成的一致意见是,最好不要使用异常规范。
异常规范是C++98新增的一项功能,但是后来的C++11已经将它抛弃了,不再建议使用。
另外,各个编译器对异常规范的支持也不一样,请看下面的代码:
#include
#include
#include
using namespace std;
void func()throw(char*, exception){
throw 100;
cout<<"[1]This statement will not be executed."<
int main(){
try{
func();
}catch(int){
cout<<"Exception type: int"<
return 0;
}
在GCC下,这段代码运行到第7行时程序会崩溃。虽然func()函数中发生了异常,但是由于throw限制了函数只能抛出char*、exception类型的异常,所以try-catch将捕获不到异常,只能交给系统处理,终止程序。
在Visual C++下,输出结果为Exception type:int,这说明异常被成功捕获了。在Visual C++中使用异常规范虽然没有语法错误,但是也没有任何效果,Visual C++会直接忽略异常规范的限制,函数可以抛出任何类型的异常。
✋热门推荐