什么是最有效,优雅和pythonic解决这个问题的方法?
给定n个元素的列表(或集合或其他),我们希望得到k个最大元素.(你可以假设k<n/2不失一般性,我猜)例如,如果列表是:
l = [9,1,6,4,2,8,3,7,5]
Run Code Online (Sandbox Code Playgroud)
n = 9,让我们说k = 3.检索3个最大的算法最有效的算法是什么?在这种情况下,我们应该[9,8,7]没有特别的顺序.
谢谢!曼努埃尔
我是JPA/OpenJPA的新手,我注意到如果我EntityManager.clear()在持久化实体之后不调用,我会得到一个OutOfMemoryError(我继续在循环中添加新实体).我不确定这是否是预期的行为,或者只是OpenJPA 1.2.1故障.
那么,我是否需要自己明确分离实体?如果我不是,那么这是一个很好的做法?
我想知道Eclipse PDT中是否有可能错误地重新打开关闭的选项卡.
例如在Firefox中,我可以做Ctrl+ Shift+ T.
在我的应用程序中,我有一个对话框,用户可以在其中选择数据库备份位置.
我想警告用户他/她选择的位置是"可能不安全".
我想考虑下列安全地点:
I:\Backup)或UNC表示法(\\server2\backup))如何获得有关所选文件夹的此类信息?
我知道这个DriveInfo类,但它只处理驱动器号,而不是UNC路径.
我一直在努力坚持TDD方法.所以我做了一些测试,但都失败了.现在我正在实施.但是现在我正在实现我已经看到这些方法太简单而不能失败.特别是我实现了观察者模式,所有发生的事情是我通知所有注册的观察者.因此,对每个循环使用a并调用notify.这当然听起来太简单了.既然我在某些地方进行了测试,我应该删除它们吗?这似乎也有点浪费时间.那么我应该尝试预测一些过于简单的方法吗?
基于使用从这篇文章获得的这个非常有用的SQL获取查询执行统计信息最常执行的存储过程 - 堆栈溢出:
SELECT TOP 100
qt.TEXT AS 'SP Name',
SUBSTRING(qt.text, qs.statement_start_offset/2, CASE WHEN (qs.statement_end_offset = -1) THEN LEN(qt.text) ELSE (qs.statement_end_offset - qs.statement_start_offset)/2 END) AS actual_query,
qs.execution_count AS 'Execution Count',
qs.total_worker_time/qs.execution_count AS 'AvgWorkerTime',
qs.total_worker_time AS 'TotalWorkerTime',
qs.total_physical_reads AS 'PhysicalReads',
qs.creation_time 'CreationTime',
qs.execution_count/DATEDIFF(Second, qs.creation_time, GETDATE()) AS 'Calls/Second'
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE qt.dbid = (SELECT dbid
FROM sys.sysdatabases
WHERE name = 'BSP')
ORDER BY qs.total_worker_time/qs.execution_count DESC
Run Code Online (Sandbox Code Playgroud)
我如何完全清除这些执行统计信息并从头开始?
这将特别有用,因为开发错误和测试已经导致例程被调用通常很多次,从而无视真实的使用级别.
假设我想创建一个随每个版本一起提供的静态文本文件.我希望使用版本的版本号(如中所述AssemblyInfo.cs)更新文件,但我不想手动执行此操作.
我希望我可以使用post-build事件并将版本号提供给批处理文件,如下所示:
call foo.bat $(AssemblyVersion)
Run Code Online (Sandbox Code Playgroud)
但是我找不到任何合适的变量或宏来使用.
有没有办法实现这一点,我错过了?
我们选择p:first-letter哪个?我知道没有被叫的属性,p:first-word但是如果用户知道任何其他方式.
我不想在HTML中添加任何内容.
我需要使用CAB Project构建解决方案.
据我所知,我应该使用devenv.exe来构建CAB.
以下命令行在后台启动devenv.exe:
devenv.exe MyActiveX.sln/Rebuild"Release"
是否可以在前台运行devenv.exe?
我想在stdout中获取不在文件中的构建跟踪.
这似乎应该是非常明显的,但实体框架的一些东西让我感到困惑,我无法让它工作.
很简单,我有三个表,Id值是标识列:Users(userId,username)Categories(categoryId,categoryName)JoinTable(UserId,CategoryId)composite.
在实体设计器(这是.net 4.0)中,当我导入这些表时,正如预期的那样,连接表不会出现,但用户和类别显示关系.以下代码:
var _context = new MyContext();
var myUser = new User();
myUser.UserName = "joe";
var myCategory = new Category();
myCategory.CategoryName = "friends";
_context.Users.AddObject(myUser);
myUser.Categories.Add(myCategory);
var saved = _context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
返回错误(尽管没有添加到数据库中):
An item with the same key has already been added.
Run Code Online (Sandbox Code Playgroud)
如果我在保存之前添加以下内容:
_context.Categories.AddObject(myCategory);
myCategory.Users.Add(myUser);
Run Code Online (Sandbox Code Playgroud)
我得到相同的错误,并没有保存到数据库.如果我在尝试关联它们之前保存myUser和myCategory对象,它们都会保存,但是第二次保存会抛出错误,而没有添加到连接表中:
Cannot insert the value NULL into column 'UserId', table '...dbo.JoinTable'; column does not allow nulls. INSERT fails. The statement has been terminated.
Run Code Online (Sandbox Code Playgroud)
我显然无法理解插入了多少个关系.我错过了什么?
.net ×3
c# ×2
performance ×2
algorithm ×1
css ×1
deployment ×1
devenv ×1
eclipse ×1
eclipse-pdt ×1
insert ×1
java ×1
jpa ×1
jquery ×1
many-to-many ×1
memory-leaks ×1
openjpa ×1
python ×1
sorting ×1
sql ×1
sql-server ×1
statistics ×1
tdd ×1
unit-testing ×1
vb.net ×1