每一个你不满意的现在, 都有一个你没有努力的曾经.
G-bits Wurq
C++博客
首页
新随笔
联系
管理
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
统计
随笔 - 57
文章 - 7
评论 - 0
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
【C++学习记录】
(rss)
【Gsc 编译器开发】
(rss)
【LeeCode 每日N题】(50)
(rss)
【Vs 插件开发】(1)
(rss)
【成长计划】(2)
(rss)
【技术干货】(2)
(rss)
【算法详解】
(rss)
随笔档案
2017年9月 (17)
2017年8月 (15)
2017年7月 (3)
2017年6月 (18)
2017年4月 (4)
文章分类
【LLVM】(2)
(rss)
【Note】(2)
(rss)
文章档案
2017年4月 (6)
2017年3月 (1)
Blog
陈皓【酷壳】
(rss)
【C博客】MoreWindows Blog
(rss)
【博客园(sunev)】C# Socket
(rss)
陈皓【CSDN】
(rss)
子扬【博客园】
(rss)
Coder 必备技巧
.NET C# 如何监控并及时的显示另一个控制台Console的输出
(rss)
C 的 前 置 處 理 器
(rss)
关于.NET编译的目标平台(AnyCPU,x86,x64)
(rss)
C++强制类型转换的区别
(rss)
C++中的类模板详细讲述
(rss)
Git入门教程
(rss)
Gvim
(rss)
lib和dll的关系
(rss)
Makefile详解
(rss)
makefile中=、:=和+=的区别
(rss)
Microsoft Visual Studio 文件识别及其用途简述
(rss)
Vim与GCC和gdb完美组合
(rss)
控制台,终端,tty,shell等概念的区别
(rss)
在VS中添加lib库的三种方法
(rss)
正则表达式全部符号解释
(rss)
字节对齐详解
(rss)
Compiler for Wurq
vc++调用exe时,如何获取exe的输出信息
(rss)
自制编译器
(rss)
ChsLLVMDocs
(rss)
SHINING【CSDN】
(rss)
伯乐在线(解释器)
(rss)
底层虚拟机(LLVM)中间语言(IR)基本语法简介
(rss)
简单jit的实现
(rss)
用LLVM开发新语言
(rss)
搜索
最新评论
阅读排行榜
1. 【宏定义】静/动态 创建变量(392)
2. 【Vs 插件开发】清理Vs实验实例的环境(338)
3. 【成长计划 2017/8/14】第一个月的成长计划(221)
4. 【LeeCode 2017/06/12】 617. Merge Two Binary Trees (205)
5. 【编码规范】C++ 编码规范(204)
评论排行榜
1. 【宏定义】静/动态 创建变量(0)
2. 【Every Day】Fighting!!!(0)
3. 【编码规范】C++ 编码规范(0)
4. 【编程术语】(0)
5. 【LeeCode 2017/06/12】 617. Merge Two Binary Trees (0)
【LeeCode 2017/09/06】136. Single Number
class
Solution {
public
:
int
singleNumber(vector
<
int
>&
nums)
{
map
<
int
,
int
>
m;
stack
<
int
>
s;
for
(
int
i
=
0
; i
<
nums.size(); i
++
)
m[nums[i]]
++
;
int
ans
=
-
1
;
for
(auto it
=
m.begin();it
!=
m.end();it
++
)
{
if
(it
->
second
==
1
)
{
ans
=
it
->
first;
break
;
}
}
return
ans;
}
};
posted @
2017-09-08 15:07
Wurq 阅读(88) |
评论 (0)
|
编辑
收藏
【LeeCode 2017/09/05】125. Valid Palindrome
class
Solution {
public
:
bool
isPalindrome(
string
s)
{
string
msg
=
""
;
for
(
int
i
=
0
; i
<
s.size(); i
++
)
{
if
(
'
a
'
<=
s[i]
&&
s[i]
<=
'
z
'
)
msg
+=
s[i];
else
if
(
'
A
'
<=
s[i]
&&
s[i]
<=
'
Z
'
)
msg
+=
(s[i]
-
'
A
'
+
'
a
'
);
else
if
(
'
0
'
<=
s[i]
&&
s[i]
<=
'
9
'
)
msg
+=
(s[i]);
}
bool
ret
=
true
;
for
(
int
i
=
0
; ret
&&
2
*
i
<
msg.size(); i
++
)
{
if
(msg[i]
!=
msg[msg.size()
-
1
-
i])
ret
=
false
;
}
return
ret;
}
};
posted @
2017-09-08 14:59
Wurq 阅读(111) |
评论 (0)
|
编辑
收藏
【LeeCode 2017/09/04】121. Best Time to Buy and Sell Stock
class
Solution
{
public
:
int
maxProfit(vector
<
int
>&
prices)
{
//
获取最大值
int
max
=
-
1
;
for
(
int
i
=
0
; i
<
prices.size(); i
++
)
max
=
max
>
prices[i]
?
max : prices[i];
//
dp[i],记录到当前位置前最小的数
vector
<
int
>
dp
=
vector
<
int
>
(prices.size(), max);
for
(
int
i
=
0
; i
<
prices.size(); i
++
)
{
if
(prices[i]
<
dp[i])
dp[i]
=
prices[i];
if
(i
>
0
)
dp[i]
=
dp[i
-
1
]
<
dp[i]
?
dp[i
-
1
] : dp[i];
}
//
获取最大价格差
max
=
0
;
for
(
int
i
=
0
; i
<
prices.size(); i
++
)
max
=
max
>
prices[i]
-
dp[i]
?
max : prices[i]
-
dp[i];
return
max;
}
};
posted @
2017-09-05 14:50
Wurq 阅读(101) |
评论 (0)
|
编辑
收藏
【LeeCode 2017/09/02】119. Pascal's Triangle II
class
Solution
{
public
:
vector
<
int
>
getRow(
int
rowIndex)
{
int
numRows
=
rowIndex
+
1
;
vector
<
vector
<
int
>>
ret
=
vector
<
vector
<
int
>>
();
for
(
int
i
=
0
; i
<
numRows; i
++
)
{
vector
<
int
>
val
=
vector
<
int
>
();
if
(i
==
0
)
{
val.push_back(
1
);
ret.push_back(val);
continue
;
}
for
(
int
j
=
0
; j
<=
i; j
++
)
{
if
(j
==
0
||
j
==
i)
val.push_back(
1
);
else
val.push_back(ret[i
-
1
][(j
-
1
)]
+
ret[i
-
1
][j]);
}
ret.push_back(val);
}
return
ret[numRows
-
1
];
}
};
posted @
2017-09-05 14:39
Wurq 阅读(109) |
评论 (0)
|
编辑
收藏
【LeeCode 2017/09/01】118. Pascal's Triangle
class
Solution
{
public
:
vector
<
vector
<
int
>>
generate(
int
numRows)
{
vector
<
vector
<
int
>>
ret
=
vector
<
vector
<
int
>>
();
for
(
int
i
=
0
;i
<
numRows;i
++
)
{
vector
<
int
>
val
=
vector
<
int
>
();
if
(i
==
0
)
{
val.push_back(
1
);
ret.push_back(val);
continue
;
}
for
(
int
j
=
0
; j
<=
i; j
++
)
{
if
(j
==
0
||
j
==
i)
val.push_back(
1
);
else
val.push_back(ret[i
-
1
][(j
-
1
)]
+
ret[i
-
1
][j]);
}
ret.push_back(val);
}
return
ret;
}
};
posted @
2017-09-05 14:32
Wurq 阅读(91) |
评论 (0)
|
编辑
收藏
【LeeCode 2017/08/31】112. Path Sum
//
求二叉树中,是否存在根节点到叶子节点的路径和等于sum的路径。
class
Solution {
public
:
bool
hasPathSum(TreeNode
*
root,
int
sum)
{
//
判断当前节点是否存在
if
(root
==
NULL)
return
false
;
//
当前节点为叶子节点,直接判断到该节点是否和所求的sum一样
if
(root
->
left
==
NULL
&&
root
->
right
==
NULL)
{
if
(root
->
val
==
sum)
return
true
;
else
return
false
;
}
//
如果为非叶子节点,则继续向下查找
if
(root
->
left
==
NULL)
return
hasPathSum(root
->
right, sum
-
root
->
val);
else
if
(root
->
right
==
NULL)
return
hasPathSum(root
->
left, sum
-
root
->
val);
else
{
bool
retL
=
hasPathSum(root
->
left, sum
-
root
->
val);
bool
retR
=
hasPathSum(root
->
right, sum
-
root
->
val);
return
retL
||
retR;
}
}
};
posted @
2017-09-04 19:58
Wurq 阅读(86) |
评论 (0)
|
编辑
收藏
【LeeCode 2017/08/30】111. Minimum Depth of Binary Tree
//
求二叉树中,根节点到叶子节点最短路径的节点个数。
class
Solution
{
public
:
//
返回当前节点到叶子节点的最短路径的节点个数
int
minDepth(TreeNode
*
root)
{
//
判断当前节点是否存在
if
(root
==
NULL)
return
0
;
//
当前节点为叶子节点,直接返回该叶子节点本身
//
1 表示当前节点的本身。
if
(root
->
left
==
NULL
&&
root
->
right
==
NULL)
return
1
;
//
如果为非叶子节点,则继续向下查找
if
(root
->
left
==
NULL)
return
minDepth(root
->
right)
+
1
;
else
if
(root
->
right
==
NULL)
return
minDepth(root
->
left)
+
1
;
else
{
int
minL
=
minDepth(root
->
left);
int
minR
=
minDepth(root
->
right);
int
minLR
=
(minL
<
minR
?
minL : minR);
return
minLR
+
1
;
}
}
};
posted @
2017-09-04 15:27
Wurq 阅读(113) |
评论 (0)
|
编辑
收藏
【LeeCode 2017/08/29】107. Binary Tree Level Order Traversal II
1
//
一开始没仔细看题,还以为是后序遍历输出节点信息Orz
2
//
从底向上,从左到右输出节点的值
3
class
Solution {
4
public
:
5
vector
<
vector
<
int
>>
ret;
6
7
public
:
8
void
dfsTree(TreeNode
*
root,
int
depth)
9
{
10
if
(root
==
NULL)
11
return
;
12
13
if
(ret.size()
<
depth
+
1
)
14
ret.push_back(vector
<
int
>
());
15
16
vector
<
int
>
val
=
vector
<
int
>
();
17
ret[depth].push_back(root
->
val);
18
if
(root
->
left
!=
NULL)
19
dfsTree(root
->
left, depth
+
1
);
20
21
if
(root
->
right
!=
NULL)
22
dfsTree(root
->
right, depth
+
1
);
23
24
return
;
25
}
26
27
vector
<
vector
<
int
>>
levelOrderBottom(TreeNode
*
root)
28
{
29
ret
=
vector
<
vector
<
int
>>
();
30
dfsTree(root,
0
);
31
reverse(ret.begin(), ret.end());
32
return
ret;
33
}
34
};
posted @
2017-08-29 11:31
Wurq 阅读(104) |
评论 (0)
|
编辑
收藏
【LeeCode 2017/08/26】101. Symmetric Tree
1
class
Solution {
2
public
:
3
//
递归比较的节点都为对称节点
4
bool
isSymmetricNode(TreeNode
*
node1, TreeNode
*
node2)
5
{
6
if
(node1
==
NULL
&&
node2
==
NULL)
7
return
true
;
8
9
if
(node1
==
NULL
||
node2
==
NULL)
10
return
false
;
11
12
if
(node1
->
val
!=
node2
->
val)
13
return
false
;
14
15
return
isSymmetricNode(node1
->
left, node2
->
right)
&&
16
isSymmetricNode(node1
->
right, node2
->
left);
17
18
}
19
20
bool
isSymmetric(TreeNode
*
root)
21
{
22
if
(root
==
NULL)
23
return
true
;
24
25
return
isSymmetricNode(root
->
left, root
->
right);
26
}
27
};
posted @
2017-08-28 14:35
Wurq 阅读(116) |
评论 (0)
|
编辑
收藏
【LeeCode 2017/08/28】104. Maximum Depth of Binary Tree
1
class
Solution {
2
public
:
3
int
Depth(TreeNode
*
root,
int
sum)
4
{
5
if
(root
==
NULL)
6
return
sum;
7
8
int
lSum
=
Depth(root
->
left,sum
+
1
);
9
int
rSum
=
Depth(root
->
right, sum
+
1
);
10
11
return
lSum
>
rSum
?
lSum : rSum;
12
}
13
14
int
maxDepth(TreeNode
*
root) {
15
return
Depth(root,
0
);
16
}
17
};
posted @
2017-08-28 13:59
Wurq 阅读(91) |
评论 (0)
|
编辑
收藏
仅列出标题
共6页:
1
2
3
4
5
6