我目前正在学习Big O Notation运行时间和摊销时间.我理解O(n)线性时间的概念,意味着输入的大小成比例地影响算法的增长...例如,二次时间O(n 2)等也是如此.即使算法也是如此. ,例如置换生成器,具有O(n!)倍,通过阶乘生长.
例如,以下函数是O(n),因为算法与其输入n成比例增长:
f(int n) {
int i;
for (i = 0; i < n; ++i)
printf("%d", i);
}
Run Code Online (Sandbox Code Playgroud)
同样,如果有嵌套循环,则时间为O(n 2).
但究竟什么是O(log n)?例如,说完整二叉树的高度是O(log n)是什么意思?
我知道(可能不是非常详细)什么是对数,在这个意义上:log 10 100 = 2,但我无法理解如何识别具有对数时间的函数.
这让我疯狂了好几天了,但实际上这是我在过去几年中一直存在的问题:使用HTML/CSS我怎样才能制作出具有宽度和/或宽度的元素高度是它的父元素的100%,仍然有适当的填充或边距?
所谓"适当的"我的意思是,如果我的父元素是200px
高大的,我指定height = 100%
用padding = 5px
我所期望的,我应该得到一个190px
高的元素与border = 5px
所有各方,很好地集中在父元素.
现在,我知道那不是标准盒子模型指定它应该如何工作(虽然我想知道为什么,确切地说......),所以明显的答案不起作用:
#myDiv {
width: 100%
height: 100%;
padding: 5px;
}
Run Code Online (Sandbox Code Playgroud)
但在我看来,必须有一些方法可以为任意大小的父母可靠地产生这种效果.有谁知道完成这个(看似简单)任务的方法?
哦,为了记录,我对IE兼容性并不十分感兴趣,所以应该(希望)让事情变得更容易一些.
编辑:自从一个例子被要求,这是我能想到的最简单的一个:
<html style="height: 100%">
<body style="height: 100%">
<div style="background-color: black; height: 100%; padding: 25px"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
接下来的挑战是让黑盒子在所有边缘都显示25像素的填充,而页面不会变得足够大以至于需要滚动条.
在Go中,a string
是原始类型,这意味着它是只读的,并且对它的每次操作都将创建一个新字符串.
因此,如果我想在不知道结果字符串长度的情况下多次连接字符串,那么最好的方法是什么?
天真的方式是:
s := ""
for i := 0; i < 1000; i++ {
s += getShortStringFromSomewhere()
}
return s
Run Code Online (Sandbox Code Playgroud)
但这似乎不是很有效.
我在我的开发分支中有一些未提交的更改,并且我使用它们进行了存储git stash
,但是有些更改在那些被隐藏的更改中非常重要.有没有办法找回这些变化?
此外,我已经在存储的代码文件之上做了一些更改.
如果可能的话,我是否有可能检索到新分支的藏匿更改?
我克隆了某个项目的git存储库.我可以将文件转换为初始状态吗?当我查看文件时,请转到修订版2,3,4 ...最近?我想概述项目是如何发展的.
我正在使用RC2
使用URL路由:
routes.MapRoute(
"Error",
"{*url}",
new { controller = "Errors", action = "NotFound" } // 404s
);
Run Code Online (Sandbox Code Playgroud)
以上似乎照顾这样的请求(假设默认路由表由初始MVC项目设置):"/ blah/blah/blah/blah"
覆盖控制器本身中的HandleUnknownAction():
// 404s - handle here (bad action requested
protected override void HandleUnknownAction(string actionName) {
ViewData["actionName"] = actionName;
View("NotFound").ExecuteResult(this.ControllerContext);
}
Run Code Online (Sandbox Code Playgroud)
但是,之前的策略不处理对Bad/Unknown控制器的请求.例如,我没有"/ IDoNotExist",如果我请求这个,我从Web服务器获取通用404页面而不是我的404,如果我使用路由+覆盖.
最后,我的问题是: 有没有办法在MVC框架中使用路由或其他东西来捕获这种类型的请求?
或者我应该默认使用Web.Config customErrors作为我的404处理程序并忘记所有这些?我假设如果我使用customErrors,由于Web.Config对直接访问的限制,我必须在/ Views之外存储通用404页面.
如何打印(在控制台)Id
,Title
,Name
等这个结构中Golang的?
type Project struct {
Id int64 `json:"project_id"`
Title string `json:"title"`
Name string `json:"name"`
Data Data `json:"data"`
Commits Commits `json:"commits"`
}
Run Code Online (Sandbox Code Playgroud) 我有一个字典,我按特定顺序声明,并希望始终保持该顺序.键/值不能根据它们的值按顺序保存,我只是按照我声明的顺序想要它.
所以,如果我有字典:
d = {'ac': 33, 'gw': 20, 'ap': 102, 'za': 321, 'bs': 10}
Run Code Online (Sandbox Code Playgroud)
如果我查看它或迭代它,它是不是按顺序,有没有办法确保Python将保持我声明键/值的显式顺序?
有没有办法获取Go语言地图中所有键的列表?元素的数量由len()
,但如果我有一个像这样的地图:
m := map[string]string{ "key1":"val1", "key2":"val2" };
Run Code Online (Sandbox Code Playgroud)
如何迭代所有键?
我正在尝试使用shell脚本自动化数据库创建过程,并且我已经通过将密码传递给psql而遇到了一个问题.以下是shell脚本中的一些代码:
psql -U $DB_USER -h localhost -c"$DB_RECREATE_SQL"
Run Code Online (Sandbox Code Playgroud)
如何以非交互方式将密码传递给psql?
谢谢!
go ×3
dictionary ×2
git ×2
asp.net-mvc ×1
bash ×1
big-o ×1
command-line ×1
css ×1
git-stash ×1
loops ×1
postgresql ×1
python ×1
revision ×1
sorting ×1
string ×1
struct ×1