Open wittyResry opened 8 years ago
1. 判断条件,缺判断条件!!!
2.数据量判断,数组越界。
||和&& /2和>>1等价,而不是>>2(不要一边参考别人代码一边改不经过思考) xx和x少了一个x,可以通过写出来的判断公式不对称看出来。
diff --git a/SRM 674/FindingKids.cpp b/SRM 674/FindingKids.cpp
index a785113..437127d 100644
--- a/SRM 674/FindingKids.cpp
+++ b/SRM 674/FindingKids.cpp
@@ -46,10 +46,10 @@ void sol() {
int l = 0;
int r = n + 1;
while (l < r) {
- int mid = (l + r + 1) >> 1;
- int xx = x - (mid >> 2);
- int yy = y + ((mid + 1) >> 1) - 1;
- if (xx < 0 || y >= L.size() || abs(R[xx] - L[yy]) / 2. > ti[i]) r = mid - 1; else l = mid;
+ int mid = (l + r + 1) / 2;
+ int xx = x - mid / 2;
+ int yy = y + (mid + 1) / 2- 1;
+ if (xx < 0 || yy >= L.size() || abs(R[xx] - L[yy]) / 2. > ti[i]) r = mid - 1; else l = mid;
}
if (l % 2 == 0) {
ans[i] = abs(R[x - l / 2] + ti[i]);
c+$和c+^ vim删除 o 在当前行下方新启一行,并进入插入模式。 O 在当前行上方新启一行,并进入插入模式。 I insert 在当前行的第一个非空白字符之前插入
v visual,可视,以字符为单位移动 V 可视,以行为单位移动
Ctrl + v 可视,以块为单位移动
首先将光标移动到要该代码块第一行的行首字母上,进入可视块模式,
然后移动光标到该代码块的最后一行的行首字母上,这时会高亮显示一列。
之后键入 I,注意不是i,此时信息区显示的是插入模式了,
然后键入注释符"//",将第一行注释掉,而其他行没有变化。
不用着急,最后键入Esc退回到普通模式。
1. 分割窗口
:sp split,水平分割窗口
:vs vertical split,垂直地分割窗口可视块模式来完成了。
2. 窗口切换
Ctrl + w + [h, j, k, l]
Ctrl 在Vim中"^"一般表示Ctrl按键
w window
h,j,k,l 就是上下左右四个方向
3. 关闭窗口
Ctrl + w + [c] 关闭当前窗口
Ctrl + w + [o] 关闭其他窗口
忘记写return!C++不会编译出错
利用临时数组进行排序,并且用-std=c++11
的内部函数:
g++ ScoresSequence.cpp -o ScoresSequence.exe -std=c++11
//调用返回后,obj的引用并没有更新,还是null
public class MyTest {
@Test
public void test1() {
Object o = null;
newInstance(o);
Assert.assertEquals("", null, o);
}
private void newInstance(Object o) {
if (o == null) {
o = new Object();
}
}
}
边界值判断,入参为空判断,越界异常抛出