如何有效地找到数组中每个元素的排名,在平局的情况下求平均值?例如:
float[] rank(T)(T[] input) {
// Implementation
}
auto foo = rank([3,6,4,2,2]); // foo == [3, 5, 4, 1.5, 1.5]
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一方法是分配 3 个数组:
有谁知道如何在 O(N log N) 时间和 O(1) 辅助空间中执行此操作(意味着我们必须分配的唯一数组是我们要返回的数组),或者至少摆脱其中之一上面的三个数组?
所以我希望在我的SQL数据库中存储一个日期,并且不确定最有效的方法是什么.我想到了两种不同的方法.
首先,人们将能够为每一天设定一定的价格.
例如:
2011年3月8日:1美元
2011年3月9日:2美元
2011年3月10日:5美元
对于我的数据库,我考虑的是存储UNIX时间戳或在单独的字段中存储月,日和年.
第一种方法:
UNIX时间戳
优点
缺点
月日年
优点
缺点
有了上述信息,您的建议是什么?(我可以澄清是否有任何不清楚.)
我想用零( 0.0 )启动 N 个对象的列表。我想这样做:
var TempList = new List<float>(new float[(int)(N)]);
Run Code Online (Sandbox Code Playgroud)
有没有更好(更有效)的方法来做到这一点?
似乎没有一个算法教科书提到太空效率,所以当我遇到要求只需要恒定记忆的算法的问题时,我真的不明白.
什么是使用常量内存和不使用常量内存的算法的算法示例?
我需要一个实现Iterable的类,并不需要对并发使用是安全的.各种选项,如LinkedList,HashSet,ArrayList等,哪个是最轻的?
为了澄清用例,我需要能够向Iterable添加许多对象(通常为3或4),然后需要对其进行迭代.
如何最小化代码中重复的异常抛出代码:
public R get(int index) throws IndexException {
if (!((0 <= index) && (index < this.info.length))) {
throw new IndexException();
}
return this.info[index];
}
public void set(int index, R r) throws IndexException {
if (!((0 <= index) && (index < this.info.length))) {
throw new IndexException();
}
this.info[index] = r;
}
Run Code Online (Sandbox Code Playgroud) 目前我有一份报告,查看不同类型的文件.每个文档都有一个指定的时间表,它应该完成(即2天,4天等).有超过100种类型的文件.目前,每个文档的分配时间刻度保存在Excel电子表格中,并使用vlookup公式(基于评估ID)与excel中的数据匹配.遗憾的是,我们的数据库中没有地方可以放置这个指定的时间刻度,但我希望能够从数据库运行报告并将其发送给用户,而无需在Excel中执行此额外操作.我知道我可以通过写一个大规模的案例陈述来实现这一目标(下面只是一个例子)
即
SELECT
ID,
CASE WHEN ID = 1 then '1 day'
WHEN ID = 2 then '42 days'
WHEN ID = 3 then '16 days'
ELSE 'CHECK' end as 'Timescale'
FROM TABLE1
Run Code Online (Sandbox Code Playgroud)
但我确实想知道在SQL中是否有更有效的方法(除了请求数据库中的其他字段来记录这个!)?可能没有,但认为值得问!谢谢.
我已经开始使用C#编程来开发一些控制台应用程序,我想知道如何以更有效的方式使用不同的名称来创建一定数量的变量.现在我正在做这样的事情:
for(int i=1; i<=x; i++)
switch(i) {
case 1:
Player player1=new Player(i, x);
break;
case 2:
Player player2=new Player(i, x);
break;
case 3:
Player player3=new Player(i, x);
break;
case 4:
Player player4=new Player(i, x);
break;
case 5:
Player player5=new Player(i, x);
break;
case 6:
Player player6=new Player(i, x);
break;
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有更有效的方法来解决这个问题以及这些方法是什么.