原创 算法導論——快速排序

思路:(1).分解:數組A【p...r】被劃分爲兩個(可能爲空)子數組A【p...q-1】和A【q+1...r】,使得A【p...q-1】中的每一個元素都小於等於A【q】,而A【q】也小於等於A【q+1...r】中的每個元素。其中,計算下

原创 C++ primer-練習3.34~3.36

3.34:假定P1和P2指向同一個數組中的元素,則下面程序的功能是什麼?什麼情況下非法? P1+=P2-P1; 功能是讓p1指向目前所指元素後第p2-p1個元素。只有當p1爲常量指針是,才非法。 3.35:編寫程序,利用指針將數組中元

原创 算法導論—4.1-5

使用如下思想爲最大字數組設計一個非遞歸的、線性時間的算法。從數組的左邊界開始,由左至右處理,記錄到目前爲止已經處理過的最大字數組。若已知A【1....j】的最大字數組,基於以下性質將解擴展爲A【1....j+1】的最大字數組:A【1...

原创 C++ primer-練習6.17

編寫一個函數,判斷string對象中是否含有大寫字母。編寫另一個函數,把string對象全都改成小寫形式。在這兩個函數中你使用的形參類型相同麼?爲什麼? #include<iostream> #include<string> #incl

原创 利用指針和迭代器遍歷二維數組的2種方法

#include<iostream> using namespace std; int main() { int ia[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; for (auto p = ia;

原创 用兩個隊列實現一個棧

思路和兩個棧實現隊列一樣。代碼如下: #include<iostream> #include<queue> using namespace std; class solution { public: void push(int x)

原创 leetcode---657. Judge Route Circle

題目如下:   也是很簡單的題,只要先判斷是否是偶數,然後再判斷UD,LR數目是否相等就可以了。 代碼如下: #include <string> int num(string s, char c) //統計

原创 機器學習實戰——KNN(K近鄰算法)

首先,這篇博客是根據《機器學習實戰》這本書寫的,代碼只是略有不同。書上的代碼是python2.7版本的,我的python3.6有的用不了,各種問題。所以把我已經運行沒問題的代碼貼上來,再加上自己的一點註釋。即是幫自己再次理解,也是幫助有可

原创 算法導論——隊列

頭文件queue.h如下: #pragma once #ifndef _QUEUE_H #define _QUEUE_H #define SIZE 100 class my_queue { private: using pos = ch

原创 lintcode 14. 二分查找

題目: 題目比較簡單,就是通過二分法找到數字。因爲是給出第一次出現的下標,所以array[mid]>=target是比較好的選擇。 代碼如下: class Solution { public: /** * @param

原创 用兩個棧實現隊列

劍指offer上的題目,因爲我剛剛看過棧和隊列,所以想練幾個題目,再加強對棧和隊列的認識。 其實還算簡單。就是第一個棧用來push,第二個棧用來delete。代碼如下: #include<iostream> #include<stack>

原创 leetcode 557. Reverse Words in a String III

題目: 挺簡單的,先用“ ”將每個單詞分開,然後對每個分開的單詞反轉(利用reverse函數),把每個反轉後的加到新的字符串上。最後別忘記每個單詞間隔有個空格。 代碼如下: #include <algorithm> #include

原创 lintcode 6. 合併排序數組

題目: 比較簡單,因爲A,B都是已經排好序的,只要用i,j同時對A,B進行索引,然後選擇較小的數放入C中就可以了。 代碼: class Solution { public: /* * @param A: sorted

原创 leetcode----461. Hamming Distance

題目如下: 就是先把x,y轉成二進制數,再比較有多少位不同,很簡單。C++有bitset包,大大節約了二進制轉換的時間。 代碼如下: #include <bitset> class Solution { public: int

原创 561. Array Partition I

題目: 經驗所得,排序好之後的和就是最大的。 代碼: class Solution { public: int arrayPairSum(vector<int>& nums) { sort(nums.begin(