1.二維陣列的查詢
class solution
else
else
//索引-1
index_new--;
index--;
}}};
3.從尾到頭列印鍊錶
/**
* struct listnode
* };
*/class solution
while(array_tmp.size()>0)
return array_result;
}};
4.重建二叉樹
/**
* definition for binary tree
* struct treenode
* };
*/class solution
if(vec_right_length>0)//如果右子樹不為空則新增右子樹
return tree;
}};
5.兩個棧實現佇列
class solution
int pop()
int value=stack2.top();
stack2.pop();
while(stack2.size()>0)
return value;
}
private:
stackstack1;
stackstack2;
};
6.旋轉陣列的最小數字
class solution
return arr[n];
}};
8.跳台階
class solution
return methodstofloor[number];
}};
9.**跳台階
class solution
return arr[number];
}};
11.二進位制中1的個數
在這裡插入**片
12.數值的整數次方
class solution
if(exponent==0)
return 1;
if(exponent==1)
return base;
if(exponent%2==0)
return power(base,exponent/2)*power(base,exponent/2);
else
return power(base,exponent/2)*power(base,exponent/2)*base;
}};
13.調整陣列順序使奇數字於偶數前面
class solution
while(odd.size()>0)
while(even.size()>0)
}};
14.鍊錶中倒數第k個節點
/*
struct listnode
};*/
class solution
if(nnext;
}return pcur;
}};
15.反轉鍊錶
/*
struct listnode
};*/
class solution
return tmp->next;
}};
16.反轉鍊錶
/*
struct listnode
};*/
class solution
return tmp->next;
}};
17.合併兩個排序的鍊錶
/*
struct listnode
};*/
class solution
else
return head;
}};
18.樹的子結構
/*
struct treenode
};*/
class solution
if(proot1==null && proot2!=null)
if(proot1->val!=proot2->val)
if(proot2->left==null&&proot2->right==null)
if(proot2->left==null&&proot2->right!=null)
if(proot2->left!=null&&proot2->right==null)
//當b的根與a的根相同,且b左右子樹均不為空,則下列任意條件均滿足 b是a的子結構:①如果b的左子樹為a的左子樹的子結構 且b的右子樹為a的右子樹的子結構 ②b是a的左子樹的子結構 ③b是a的右子樹的子結構
return hassubtree(proot1->left,proot2->left)&&hassubtree(proot1->right,proot2->right)||hassubtree(proot1->left,proot2)||hassubtree(proot1->right,proot2);
}};
19.二叉樹的映象
/*
struct treenode
};*/
class solution
mirror(proot->left);
mirror(proot->right);
}};
20.順時針列印矩陣
class solution
void pop()
int top()
int min() ;
22.棧的壓入、彈出序列
class solution
};*/
class solution
treenode * tmp;
list.push(root);
while(!list.empty())
if(tmp->right!=null)
list.pop();
}return result;
}};
24.二叉搜尋樹的後序遍歷序列
class solution
int root=sequence[n-1];
int left_end;
vectorleft,right;
for(int i=0;iroot)
else
else
}};
38.二叉樹的深度
/*
struct treenode
};*/
class solution ;
牛客劍指offer刷題記錄(七)
演算法導論上應該有這樣的課後題。歸併的思路,假設f i,j 表示陣列i到j的逆序對數,那麼有 f i,j f i k f k 1,j s i j,k 其中s i,j,k 表示逆序對 p q p i k q k 1,j 由於歸併排序,我麼得到兩個有序的子陣列l,r 那麼當出現逆序對 l i r j 時...
牛客劍指offer刷題記錄(五)
鍊錶的指標域中,除了有指向下乙個節點的鍊錶以外,還有乙個指向隨機節點的指標。struct listnode 常規做法,空間換時間。先常規的將拷貝的節點用next串起來,遍歷一遍原始鍊錶,然後尾插法即可。在尾插的同時,建立乙個由原始節點指標p到拷貝節點指標c的乙個map。再次遍歷原始指標,如果指標p指...
劍指offer 牛客網錯題記錄 四
題目 在乙個字串 1 字串長度 10000 中找到第乙個只出現一次的字元的位置。異常情況返回 1 這道題借助雜湊表,用空間換取執行時間,事件效率可以達到o n 就是首先遍歷字串,以字元的ascii碼為下標,對應的值為該字元出現的次數。再次遍歷字串,以字元為下標判斷雜湊表對應的值,如果為1則返回該索引...