m********8 发帖数: 36 | 1 unordered没关系吧, 我们只需要返回找到没有。
appear times 是可能一个数字用两次。 比如 2+2=4, 如果不记录次数的话判断不出
。 但可能用一个boolean作为flag也能记录, 剩点空间?
大牛们能不能帮忙看看这样行不? 谢谢!
我用c++写的。
struct TwoSum {
/**
* Stores @param input in an internal data structure.
*/
public:
void store(int input){
map[input]++;
}
/**
* Returns true if there is any pair of numbers in the internal data
structure which
* have sum @param val, and false otherwise.
* For example, if the numbers 1, -2, 3, and 6 ... 阅读全帖 |
|
n****e 发帖数: 10 | 2 class Iterator {
public:
Iterator() : cur(0) {};
bool hasNext() {
return cur < 20;
};
int next() {
++cur;
return cur;
};
private:
int cur;
};
int main() {
Iterator it;
int a = it.next();
int b = it.next();
cout << a << " " << b << endl;
cout << it.next() << " " << it.next() << endl;
}
为啥输出是
1 2
4 3
而不是
1 2
3 4 |
|
H******7 发帖数: 1728 | 3 class Solution {
public:
int res;
bool isValid(int A[], int r){
for (int i=0;i
if ( (A[i]==A[r])||(abs(A[i]-A[r])==(r-i))){
return false;
}
}
return true;
}
void nqueens(int A[], int cur, int n){
if (cur==n){ res++;return;}
else{
for (int i=0;i
A[cur]=i;
if (isValid(A,cur)){
nqueens(A,cur+1,n);
}
... 阅读全帖 |
|
b******n 发帖数: 851 | 4 dp为什么会没recursive好?
cur = prevPrev+{2} && prev+{1}
[[]]
[[1]]
[[1,1],[2]]
[[1,2], [1,1,1], [2, 1]]
List> EnumeratingSteps(int n) {
List> prevPrev = new ArrayList>();
if (n == 0) return prevPrev;
List> prev = new ArrayList>();
prev.add (new ArrayList().add(1));
if (n == 1) return prev;
for (int i = 2; i <= n; i++) {
List> cur = new ArrayList>();
for (List阅读全帖 |
|
n*******n 发帖数: 45 | 5 木有用DP....
public int lengthOfLongestSubstring(String s) {
if (s == null) {
return 0;
}
if (s.length() < 2) {
return s.length();
}
int maxLength = 0;
int totalLen = s.length();
int currentLen = 0;
int cStart = 0;
Map indexMap = new HashMap<>();
while((totalLen - cStart) > maxLength) {
for(int i = cStart; i < totalLen; i++) {
Character cur = s.char... 阅读全帖 |
|
d****j 发帖数: 293 | 6 这道题好像是facebook hacker cup 2011的第三题吧
刚开始没仔细看掉到陷阱了,直接sort连接..-_-
看到板上举得例子 "bc" "bca" 正解是 bcabc 而不是bcbca,才恍然大悟...
再看这个例子,如果是"bc" "bcd",那么sort再连接就没问题了
(楼上其他人举的例子和这个类似啦)
明显发现:如果一个词A=wx是另外一个词B=w的前缀,那么就需要考虑长单词多余部分x
和前缀w的大小,才能决定结果是AB 还是BA。
如果没有前缀关系,顺序连接打印就行了。
这就是我的idea,sort+栈+额外处理。
1.先sort.
2.第一个单词入栈
3.检查下一个单词cur是否以栈顶单词top为前缀,
a.如果不是,栈中元素全部 pop出,打印; cur入栈
b.是, 检查cur多余的部分x和top的大小
i. x<=top小,cur入栈
ii. x>top, top出栈打印
4. 重复3步骤直到单词表尾
5. 如果栈不为空,全部pop出栈打印
其中3步骤的几种情况,有的要下移一个单词检查,有的要继续检查当... 阅读全帖 |
|
gw 发帖数: 2175 | 7 再接着问一个:
Class numcls{
Double a--z;
Clone(){
This.A--z=a--z;}
}
Numcls old;
Numcls cur;
Old=cur;
...
Cur.equals(old) always true;
Old=cur.clone();
...
Cur.equals(old ) always false
为什么? |
|
d****n 发帖数: 1637 | 8 你那个煞笔model用bash就足够了.
NumbThread=10
cur=0
for url in `cat url_list.txt`;do
if ((cur < NumbThread))
then
cur=$((cur+1))
timeout 5 curl -O $url &
else
wait
cur=0
fi
done
偷偷跑完了,告诉爷爽不爽。
就你那智商还搞threads,多写几个hello world吧 |
|
l*****g 发帖数: 685 | 9 用C++写了一个版本:
void RecursivelyRemoveSubString(char *str, const char *sub)
{
if (!str || !sub || *sub == 0 || *str == 0 || strlen(str) < strlen(sub))
return;
char *end = str;
char *cur = str;
int subLen = strlen(sub);
char subEnd = sub[subLen - 1];
while (*cur != 0)
{
*end = *cur;
if (*end == subEnd)
{
char *reCur = end;
int subIndex = subLen - 1;
bool match = true;
bool reCurEnd = false;... 阅读全帖 |
|
f*******t 发帖数: 7549 | 10 double版的,反正意思一样
double power(double x, int n)
{
double cur = x;
double result = 1.0;
while(n > 0)
{
if(n & 1)
result *= cur;
cur *= cur;
n >>= 1;
}
return result;
} |
|
s******n 发帖数: 3946 | 11 next()很好写啦,10行搞定
class Iterator {
Node* middle;
stack stack;
public:
Iterator(Node* root) {
middle = root;
}
Node* next() {
Node* cur = NULL;
if (middle||!stack.empty()) {
while (middle) {
stack.push(middle);
middle=middle->lchild;
}
cur = stack.top();
stack.pop();
middle = cur->rchild;
}
return cur;
} |
|
d****o 发帖数: 1055 | 12 下面找lowestCommonAncestor的代码如果tree balance的话time complexity是多少?
自己想的不保险,请教一下。
我觉得是O(nlogn)
bool contain(node* root, node* cur)
{
if(root)
{
if(root==cur) return true;
return contain(root->left,cur)||contain(root->right,cur);
}
return false;
}
node* lowest(node* root, node* n1, node* n2)
{
if(root==n1||root==n2) return root;
if(root==NULL) return NULL;
bool isLeft1 = false;
bool isLeft2 = false;
if(root->left)
{
isLeft1 = contain(root->left,n1); ... 阅读全帖 |
|
h*****y 发帖数: 218 | 13 在网上发现这个最大直方图求面积的题目的解答,有一个地方没看明白
http://www.sureinterview.com/shwqst/1117001
下面这个代码的stack为什么有一个get的方法?
if (prev.height > stk.get(stk.size() - 2).height) {
======================================================================
public long getMaxArea(int[] histogram) {
long maxArea = 0;
if (histogram == null || histogram.length == 0)
return maxArea;
Stack- stk = new Stack
- ();
stk.push(new Item(Integer.MIN_VALUE, -1));
for (int i = 0; i <... 阅读全帖 |
|
p*******m 发帖数: 47 | 14 我5月初要去Twitter onsite,面的是 Trust & Safety team
2轮电面都比较简单,2个engineers都很nice.
但听说onsite 难度会明显加大, 而且我网上能搜到的它家的题目不多,特别是onsite,
所以心里没底,来版上求经验。
希望有面试经验的同学能和我分享, 如果不方便帖出来,你也可以我站内发信或者
email: d********[email protected]
这是recruiter给我的schedule:
11:30am 去公司签到, 然后面7个人, 其中有个 team Product Manager。每轮45min,
第1轮是 lunch interview,
7轮分别有coding, Ph.D. research presentation, large-scale system design (这
个是open question)
下面是我搜集到的Twitter的题目,有些版上有过了,给后来的同学作参考。
如果你们有新的题, 也可以回在下面.
希望版上它家的信息能多些
++++++++++++++++++++++++++++++++++++... 阅读全帖 |
|
k*******t 发帖数: 144 | 15 两个指针(slow, fast)就够啦,判断list有无loop也不需要额外空间。贴了个代码,比
较ugly, 凑合着看吧
bool hasLoop(int arr[], int len){
int slow = 0;
int fast = 0;
int cur = 0;
while(cur < len)
{
if(arr[slow] != -1)
{
slow = arr[slow];
}
else
{
++slow;
fast = slow;
cur = slow;
continue;
}
int i = 0;
while(i < 2 && arr[fast] != -1)
{
fast = arr[fast];
... 阅读全帖 |
|
w****x 发帖数: 2483 | 16
最后一题的bug是
if (max < cur) max = cur
写成了
if (max > cur) max = cur |
|
w****x 发帖数: 2483 | 17
最后一题的bug是
if (max < cur) max = cur
写成了
if (max > cur) max = cur |
|
w***o 发帖数: 109 | 18 有点罗嗦,这样应该简洁一点:
public static int RomanToInt(String input) {
// null check ...
int pre = map.get(input.charAt(0));
int ret = pre;
for(int i = 1; i < input.length; i++ {
int cur = map.get(input.charAt(i));
ret += cur;
if(cur > pre)
{ret -= pre * 2;pre = 1001;}
else
pre = cur;
}
return ret;
} |
|
n*****g 发帖数: 178 | 19 请教大家,下面是我自己写的一个移除已排列好的数组中的重复袁福的代码,但我对时
间复杂度的概念比较模糊,能否指教一下??
需不需要按最坏和平均情况来分析,我一直搞不懂..
int removeDuplicateSortedArray(int A[], int n)//leetcode all passed
{
int duplicate=0,prev=0,cur=prev+1,len,newPosit;
if(n==1)//一个元素就不考虑了
return 1;
if(n==0) //一个元素都没有更不考虑
return 0;
for(prev=0;prev
{
cur = prev+1;
if(A[prev]==A[cur])//找到相同元素
{
//直接把相同元素后面的全幅往前移一格
... 阅读全帖 |
|
M********5 发帖数: 715 | 20 来自主题: JobHunting版 - 看不懂这题 写了个c++版本的,O(n)的time efficiency和O(n)的space efficiency,不知道有没有
更优化的?比如no extra space and only one time walk-through?
struct Node{
Node* data;
Node* next;
};
Node* copyLinkedList(Node* head){
if(!head)
return NULL;
std::map node_map;
Node* new_head = copyLinkedListHelper(head, node_map);
Node* cur = new_head;
while(head){
cur->node = node_map[head->node];
cur = cur->next;
head = head->next;
}
return new_hea... 阅读全帖 |
|
h*******0 发帖数: 270 | 21 Find out the first non duplicate character in a string.
eg: "nasa" output: 'n'
只允许扫一遍字符串, 如果只是用hash,需要扫2遍。 我的想法是用double linked
list和hash。 第一次读到char, 就放到linkedlist结尾, 并插入(char, 对应node
pointer)到hash中。 如果第二次读到这个char, 把这个node删除, 将hash[char]
的value变成NULL。 如果删除的node为cur, 那么删除cur, 并让cur指向下一个。 最
后返回cur的data。
这个方法可以吗? |
|
j********x 发帖数: 2330 | 22 根据如下结论:
1. 如果n步只能到达的距离超过某点d,则到达d的最小步数一定小于或等于n
2. 如果n步能到达的最远距离达不到d,则到达d的最小部署一定大于n
3. n+1 步能到达的距离不会比n步小
问题变成求使得到达距离大于给定输入的最小步数;问题可以变成求n=[1,...,n]步能
走的最大范围是多少;这个是DP问题
dp[n] = max{i + A[i]} (i <= dp[n-1])
然后有个优化,i这里其实不需要每次从1开始搜索,因为i+A[i]本身只跟i有关系,只
需要一个循环检查所有i就可以,并且在过程中记录当前步数及其对应的距离,并且在
必要的时候更新。
int jump_gameII(int[] A) {
if (A.length <= 1) { return 0; }
int cur = 0
int step = 0;
int max = 0;
for (int i = 0; i < A.length && max < A.length - 1; ++i) {
if (i > cur && i <= max) {
++step;
... 阅读全帖 |
|
b******7 发帖数: 92 | 23 1)canJump
从右往左是经典dp,
f(i)表示第i+1个点跳到底n个点最小步骤
f(i) = min{1 + f(i+k)}, k = 1... A[i]
2)BST 加successor
void add_successor(TreeNode * root)
{
if(root == NULL) return NULL;
TreeNode * pre = NULL;
stack s;
for(TreeNode * p = root; p != NULL; p= p->left)
s.push(p);
while(!s.empty())
{
TreeNode * cur = s.top();
s.pop();
if(pre != NULL) pre->successor = cur;
pre = cur;
for(TreeNode * p = cur... 阅读全帖 |
|
a*****a 发帖数: 46 | 24 题目是说用递归取代循环,如果是多种括号的话,即使递归也得用stack吧。虽然递归
自己就有stack,但是这里左右括号的处理不同,右括号的话需要pop,所以我觉得还是
得用stack。
用java写了一下,欢迎指正
private boolean isValidHelper(String s, int cur, Stack stack) {
if (cur == s.length()) return stack.isEmpty();
char c = s.charAt(cur);
switch (c) {
case '(':
case '[':
case '{':
stack.push(c);
break;
case ')':
if (stack.isEmpty() || stack.pop() != '(') return false;
break;
case ']':
if (stack.isEmpty() || stack.pop() ... 阅读全帖 |
|
r**h 发帖数: 1288 | 25 直接使用st.push(cur->left);将左子树节点入栈
和先赋值cur = cur->left; 再st.push(cur);
结果竟然是不一样的
找了半天找不到bug,结果简单替换一下就正常了- -!
真心请教一下,这是为什么呀。。。 |
|
g*****s 发帖数: 1288 | 26 debugged code. The other solutions are not complete. Any solution shorter
than this one is wrong.
int maxRepeatedNumber(int A[], int n, int k)
{
assert(k <= n);
int i;
//replace values with occurrence
for(i = 0; i < n; i++)
{
int val = A[i];
if(val < n) //not touched
{
A[i] = (val+1)*n; //initialization, means occurrence of i is
0
//put val
for(;;)
{
int cur = A[val];
... 阅读全帖 |
|
b******7 发帖数: 92 | 27 给了个笨方法,也过了oj。构造图,利用拓扑排序计算
class Solution {
public:
int candy(vector &ratings) {
// Note: The Solution object is instantiated only once and is reused
by each test case.
if(ratings.empty()){
return 0;
}
if(ratings.size() == 1){
return 1;
}
int sum = 0;
int n = ratings.size();
vector candy(n, 1);
vector indegree(n, 0);
vector > edges(n, vector());
fo... 阅读全帖 |
|
s*****4 发帖数: 25 | 28 Unit test要写到多详细呢 有人可以给个例子吗?
test cases我只想到这三个:
1. last hit和cur hit发生在同一秒
2. last hit和cur hit发生在不同秒, 检查结果是否正确的把last hit到cur hit之间
的element reset 0
3. 同2, 且last hit跟cur hit发生的间隔很大(ex. 30000s), 检查run time, 看是否
在reset完300个element后就early return
concurrency是不是只需要用一个mutex把hit()头尾用mutex.lock(), nutex.unlock()
包住就行了? 不是很确定... |
|
s*****4 发帖数: 25 | 29 Unit test要写到多详细呢 有人可以给个例子吗?
test cases我只想到这三个:
1. last hit和cur hit发生在同一秒
2. last hit和cur hit发生在不同秒, 检查结果是否正确的把last hit到cur hit之间
的element reset 0
3. 同2, 且last hit跟cur hit发生的间隔很大(ex. 30000s), 检查run time, 看是否
在reset完300个element后就early return
concurrency是不是只需要用一个mutex把hit()头尾用mutex.lock(), nutex.unlock()
包住就行了? 不是很确定... |
|
D**********d 发帖数: 849 | 30 int CounterDiagSum(int n){
if(n < 1) return 0;
int Cur = (n-1)*n + 1;
int Sum = Cur;
while(--n > 0){
Cur -= (n + n);
Sum += Cur;
}
return Sum;
} |
|
l*********d 发帖数: 78 | 31 尝试过许多解法,但老是 TLE. 有高人能帮忙看一下这一段代码吗?
基本上就是 double queue + backtracking,跟这里的http://blog.csdn.net/niaokedaoren/article/details/8884938
很相似。但是问题出在哪里呢?
提前谢谢了!
------------------------------------------------------------------------
import java.util.Map;
public class Solution {
public void fillPaths(String start, String cur, Map>
map,
ArrayList> result, LinkedList post
) {
post.addFirst(cur);
if (start.equals(cur)) {
... 阅读全帖 |
|
g*********e 发帖数: 14401 | 32 用了一个dummy node, 记得用完删掉
class Solution {
public:
ListNode *insertionSortList(ListNode *head) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
if(head == NULL)
return NULL;
ListNode *dummy=new ListNode(0);
dummy->next=head;
head=head->next;
dummy->next->next=NULL;
while(head) {
ListNode *cur=head;
head=head->next;
... 阅读全帖 |
|
q****m 发帖数: 177 | 33 我的这个为什么超时了呢? 斜率我用一对整数(x, y)表示,而且让 x>= 0.斜率(0,y
)比其他的斜率都大。斜率(x1, y1) 比(x2, y2) 小的话意味着
y1/x1 < y2/x2, 转化成等价的形式 y1 * x2 < y2 * x1
/**
* Definition for a point.
* struct Point {
* int x;
* int y;
* Point() : x(0), y(0) {}
* Point(int a, int b) : x(a), y(b) {}
* };
*/
class Solution {
public:
static bool compare(const Point &a, const Point &b)
{
if(b.x == 0)
{
return true;
}
return a.y * b.x < a.x * b.y;
}
int maxPoints(vect... 阅读全帖 |
|
g*****g 发帖数: 212 | 34 来自主题: JobHunting版 - 新鲜G面经 第二题,似乎就是用一个private变量 cur 保存一个当前value就好了。
每次call next的时候,替换当前 cur,直到 null
call peek 返回 cur
hasnext 返回 cur != null
第四题 没看到follow up 2。。。 |
|
s********x 发帖数: 914 | 35 我是在原矩阵上改的啊,贴一下我的代码吧
public void solve(char[][] board) {
if(board == null || board.length == 0) return;
int m = board.length, n = board[0].length;
// Scan the four edges of the board, if you meet an 'O', call a
recursive mark function to mark that region to '+';
for(int i = 0; i < m; i++) {
bfs(i, 0, board);
bfs(i, n - 1, board);
}
for(int j = 1; j < n-1; j++) {
bfs(0, j, board);
bfs(m - 1, j, boar... 阅读全帖 |
|
c**g 发帖数: 45 | 36 void inorderTraversalByIteration(TreeNode* root, vector& ret)
{
if(root == 0)
return;
stack s;
s.push(root);
while(s.size() > 0)
{
if(s.top()->left != 0)
{
s.push(s.top()->left);
}else
{
TreeNode* cur = s.top();
s.pop();
ret.push_back(cur->val);
if(cur->right != 0)
... 阅读全帖 |
|
g****b 发帖数: 98 | 37 第一遍抄的网上的BFS写法
public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
if(node == null) return null;
UndirectedGraphNode cnode = new UndirectedGraphNode(node.label);
Map visited = new HashMap<
UndirectedGraphNode, UndirectedGraphNode>();
visited.put(node, cnode);
Queue queue = new LinkedList<
UndirectedGraphNode>();
queue.add(node);
while(!queue.isEmpty()){
... 阅读全帖 |
|
f**********t 发帖数: 1001 | 38 // Given a nested list of integers, returns the sum of all integers in the
list
// weighted by their depth. For example, given the list {{1,1},2,{1,1}} the
// function should return 10 (four 1's at depth 2, one *2 at depth 1). Given
// the list {1,{4,{6}}} the function should return 27 (one 1 at depth 1, one
4
// at depth 2, and *one 6 at depth 3)
int getNum(string::iterator &i, string::iterator end) {
if (i == end) {
return 0;
}
bool neg = false;
if (*i == '-') {
neg = true;
... 阅读全帖 |
|
a***e 发帖数: 413 | 39 我把我前后写过的代码贴一下,看有没有大牛有更好的分享下。看soulmachine的答案
看得头大,因为平时不怎么用那些STL。
而且这道题我半年前几下写好了,最近反而花了好久才写对,真是很郁闷。
class Solution {
public:
string countAndSay(int n) {
if (n==0) return "";
string res="1";
if(n==1) return res;
int c;
for (int i=2; i<=n; i++)
{
char num=res[0];
string prev;
int j=0;
while ( j
{
c=0;
while (res[j]==num&&j
... 阅读全帖 |
|
r********7 发帖数: 102 | 40 抛个砖~ 自己写了一个, stack 然后 backtracking。 其实写完感觉stack多此一
举,不想改了。 请大神们无视
public class Solution {
public void printCombo(List> input){
if (input == null || input.size()==0){
return;
}
Stack> stc = new Stack>();
for (int i=0; i
stc.push(input.get(i));
}
List> res = new ArrayList>();
while(!stc.isEmpty()){
List ... 阅读全帖 |
|
y********g 发帖数: 598 | 41 (MID-END/MISCELANEOUS LEAVE-INS)(中高端价位以及其他的)
Curly Hair Solutions Slip Detangling Spray
Curly hair Solutions Silk Leave-In Conditioner
AG Fast Food Leave-In
Qhemet Biologics Herbal Henna Botanical Softening Oil
Qhemet Biologics Karite Nut Curl Milk
Qhemet Biologics Olive & Honey Hydrating Balm
Qhemet Biologics Olive Cream Conditioning Instant Detangler
Oyin Handmade Greg Juice
Mop Top Herbal Detangler & Refresher
Mia Simone's Boutique Aloe Vera Herbal Leave-In Treatment
Mia Simone's Boutique Moi... 阅读全帖 |
|
q**j 发帖数: 10612 | 42 import pymssql
conn = pymssql.connect(host='xxx', user='yyy', password='zzz', database='ddd
')
cur = conn.cursor()
cur.execute('select * from aaa.bbb', params=())
row = cur.fetchone()
data = [row]
while row:
row = cur.fetchone()
data.append(row)
这样下载以后最后会有一个empty record。结果list data会比原来的数据多一个row。
请问这个是怎么回事?
另外请问在python的editor里面,如何选择某一行来运行(就是我用鼠标highlight一
行,然后按F5之类的办法)? 我发现如果我自己copy and paste到commandline的话,好
像很多时候命令不运行。这是怎么搞的?
多谢了。 |
|
发帖数: 1 | 43 大家自行鉴别一下版上谁是拼老命装城里人的农村文盲土狗
http://apps.who.int/medicinedocs/en/d/Js6170e/
Expand Document | Expand Chapter | Full TOC | Printable HTML version
Subjects & Keywords
SARS: Clinical Trials on Treatment Using a Combination of Traditional
Chinese Medicine and Western Medicine
(2004; 194 pages) View the PDF document
Abstract
This document is published as the report of the WHO International Expert
Meeting to review and analyse clinical reports on combination treatment for
SARS, held in Beijing, Ch... 阅读全帖 |
|
W***n 发帖数: 11530 | 44 This is from the Pro:
http://www.tegger.com/hondafaq/cranktool/
How can I get the crankshaft bolt undone so I can change my timing belt?
you came from: Master List > Engines
This question shows up in the newsgroup quite regularly. The bolt holding
the pulley to the crankshaft is on there TIGHT. Some folks have had so much
trouble getting it started they've posted plaintive enquiries wondering if
it's a left-hand threaded bolt! No, it unscrews the regular way, but don't
kid yourself that you're g... 阅读全帖 |
|
f****y 发帖数: 737 | 45 请大家想一想,英语是谁发明的?英国人呗!
英国人认不认识汉语?不认识!
那么英国人在学英语单词的时候需不需要记住单词的汉语意思?不需要,英国人的英语
课本里根本就没有汉字,何谈记住单词的汉语意思?
那么既然英国人学英语不需要记住(甚至根本就见不到)单词的汉语意思,那么中国人学
英语为什么要去记住单词的汉语意思呢?这种做法大家不觉得奇怪吗?
然而由于中国人学英语时都在背单词的汉语意思,因此大家反而觉不出“背汉字”有什
么奇怪的了。
其实仔细想一想,这个行为真的很奇怪,奇怪的根源不在于行为本身,而在于中国人普
遍不会直接识别英语单词的意思,因而只好靠汉语符号来机械地帮助记忆英语单词的意
思,这样去学英语不仅多此一举,而且必然会陷入苦海无边的符号记忆灾难中。
其实英语单词和汉字一样,存在着很多的“偏旁部首”,知道了偏旁部首你就可以根据
它们直接来猜测单词的意思,虽不说百分之百猜准,但起码可以猜测个大概,至少在别
人告诉过你单词的意思后你可以恍然大悟地领会它,这样就可以大大增强你对英语单词
“见字识意”的能力,做到真正认识一个单词,而把它的汉语意思仅做为一般参考。
举几个例子来说吧:
比如单词... 阅读全帖 |
|
o***e 发帖数: 497 | 46 #include
using namespace std;
int reverse(const int input, int &output)
{
if (input < INT_MIN || input > INT_MAX) {
output = 0;
return -1;
}
cout <<"input:" << input << endl;
int absolute = abs(input);
int ispositive = (input < 0) ? -1 : 1;
while ( absolute > 10) {
int cur = output + (absolute % 10);
absolute /= 10;
if((ispositive == 1) && ( (cur == INT_MAX / 10 && absolute > INT_MAX
% 10) || (cur > INT_MAX / 10)) ) {
|
|
b**********r 发帖数: 91 | 47 Refined the search logic by calculate the lower bound more precisely
Now even this example can be done around 1 second
0, 10, 10, 5, 7, 3, 4, 2, 9, 6, 1, 7, 10, 2, 2, 2, 2, 4, 8
1, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8,
8, 8, 9, 9, 10, 10, 10, 10, 10, 11, 12, 12, 12, 12, 14, 14, 14, 14, 15,
15, 15, 15, 16, 16, 16, 16, 17, 17, 18, 18, 18, 18, 18, 19, 19, 20, 20,
20, 21, 21, 21, 22, 22, 22, 22, 23, 23, 24, 24, 24, 25, 25, 25, 25, 25,
25, 26, 26, 28, 29, 29, 29, 30, 30... 阅读全帖 |
|
b**********r 发帖数: 91 | 48 Refined the search logic by calculate the lower bound more precisely
Now even this example can be done around 1 second
0, 10, 10, 5, 7, 3, 4, 2, 9, 6, 1, 7, 10, 2, 2, 2, 2, 4, 8
1, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8,
8, 8, 9, 9, 10, 10, 10, 10, 10, 11, 12, 12, 12, 12, 14, 14, 14, 14, 15,
15, 15, 15, 16, 16, 16, 16, 17, 17, 18, 18, 18, 18, 18, 19, 19, 20, 20,
20, 21, 21, 21, 22, 22, 22, 22, 23, 23, 24, 24, 24, 25, 25, 25, 25, 25,
25, 26, 26, 28, 29, 29, 29, 30, 30... 阅读全帖 |
|
d*******r 发帖数: 208 | 49 用sort的方法有两个缺点
1. tie break
2. overflow
how about use raw permutation ?
code:
void findMax(const std::vector& prefix, const std::vector& exist,
int& max) {
if (exist.empty()) {
int cur = getNum(prefix);
if (cur > max) {
max = cur;
}
} else {
for (std::vector::const_iterator i=exist.begin(); i!=exist.end(
); ++i) {
std::vector new_pre = prefix;
new_pre.push_back(*i);
std::vector new_ex(... 阅读全帖 |
|
d*******d 发帖数: 2050 | 50 void path(int * a, int n){
int lastjump = 0;
int lastjumpreach = a[0];
int cur = 1;
int farest = a[0];
for( int i = 1; i
if( i+a[i] > farest && farest < n-1){
farest = i+ a[i];
cur = i;
}
if( i >= lastjumpreach ){
// finalize last jump
cout << lastjump << " ";
lastjump = cur;
lastjumreach = farest;
}
}
cout << n-1 << endl;
} |
|