- 浏览: 6711 次
- 性别:
- 来自: 上海
最近访客 更多访客>>
最新评论
-
archerzz:
这个是C++函数重载优先级问题吧。C++一个比较搞的地方,就是 ...
C++隐式转换的那些事 -
meta:
archerzz 写道个人感觉是一种对C++的补充。C++的e ...
Chromium代码分享 第 1 回 -
archerzz:
个人感觉是一种对C++的补充。C++的enum不是class, ...
Chromium代码分享 第 1 回
文章列表
昨天在公司干活的时候遇到一个C++隐式转换的问题, 折腾了很久, 后来碰巧发现了一丝线索, 才得以解决. 废话不多说了, 先上代码:
// 此数组模板类声明
template
class SomeArray {
SomeArray(int physicalLength = 32, int growLength = 32);
...
...
[问题描述] Majority定义: 整形数组A[1...n]中的元素a, 其出现次数超过 ⌊n/2⌋.
这个问题应该是比较经典的问题, 我大概整理了一下几种常见的算法:
1. Brute-force ( O(N^2) )
这种方法比较直观, 将每个元素A[i]与其后面出现的元素A[i + 1...n]比较, 得到A[i]的出现次数C[i]. C[i]中如果有 > ⌊n/2⌋的元素, 那么元素 A[i]就是majority. 复杂度是O(N^2).
2. 排序 + 线性遍历 ( O(N*lgN) )
排序需要耗费O(N*lgN), 然后在已序的 ...
Chromium最近的代码库中, 增加了一个新模块<GPU>. 随便浏览了一下这个目录, 被 cmd_buffer_common.h和cmd_buffer_common.cc中的一个实用的小trick给吸引住了, 其功能就是定义一组枚举值, 同时提供了函数接口可以根据给定的枚举值获得相应的字符串名. 代码原理非常简单, 请参考以下详细代码片段:
cmd_buffer_common.h 部分:
// This macro is used to safely and convienently expand the list of commnad
// buffer ...