原创 :34:5: error: control may reach end of non-void function [-Werror,-Wreturn-type] 錯誤分析

在做牛客網的題目的時候經常遇到這種問題,代碼在VS上跑的時候一點問題沒有,但是放到牛客網上就出這個問題./solution.h:34:5: error: control may reach end of non-void func

原创 醜數

1、題目描述 把只包含因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因爲它包含因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 2、代碼1 2.1:思路:因爲醜數的

原创 合併兩個排序的鏈表

1、題目描述 輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。 2、代碼和思路 結構體定義 struct ListNode { int val; struct List

原创 複雜鏈表的複製

1、題目描述 輸入一個複雜鏈表(每個節點中有節點值,以及兩個指針,一個指向下一個節點,另一個特殊指針指向任意一個節點),返回結果爲複製後複雜鏈表的head。(注意,輸出結果中請不要返回參數中的節點引用,否則判題程序會直接返回空)

原创 二叉搜索樹與雙向鏈表

1、題目描述 輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創建任何新的結點,只能調整樹中結點指針的指向。 2、代碼1:(自己實現) 2.1思路:因爲二叉搜索樹的左右子也是一個二叉搜索樹,因此對於整個二叉搜索

原创 包含min的棧

1、題目描述 定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的min函數。 2、代碼和思路 2.1思路: 用棧這個容器實現,因爲其具有後進先出的特點。爲了實現min,可以構造一個輔助棧:放入第一元素的時候,存放元素的棧

原创 快速排序

快速排序在很多地方都有很大的用處,最近在刷題的時候,經常遇到快排的代碼,在此記錄下: #include<iostream> #include<vector> using namespace std; //給定一個系列的起始,隨機

原创 二叉樹中和爲某一值的路徑

1、題目描述 輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和爲輸入整數的所有路徑。路徑定義爲從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。 2、代碼和思路 2.1思路:本質上是一種帶記憶的DFS(深度優先搜索)來遍

原创 反轉鏈表

1、題目描述 輸入一個鏈表,反轉鏈表後,輸出鏈表的所有元素。 2、代碼 (1)代碼1:先將所有的節點都存儲到一個棧中,利用棧先進後出的特點,再全部彈出,構建新的鏈表。 struct ListNode { int val;

原创 ARTooloKit在android上編譯demo的幾個bug記載

最近一直在研究artoolkit在android上的應用,需要做一個AR的APP,需要在android上跑artoolkit框架,IDE使用的是android studio集成編譯器。 1、問題:在官網上下載了ARToolKit的

原创 樹的子結構

1、題目描述: 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) 2、代碼 2.1思路:這個題目主要是分爲三步驟實現。 (1)第一步是實現樹1的遍歷,遍歷樹1的每個節點; (2)第二步

原创 數組中出現次數超過一半的數字

1、題目描述 數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。例如輸入一個長度爲9的數組{1,2,3,2,2,2,5,4,2}。由於數字2在數組中出現了5次,超過數組長度的一半,因此輸出2。如果不存在則輸出0。 2、

原创 數組中的逆序對

1,題目描述 在數組中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個數組中的逆序對的總數P。並將P對1000000007取模的結果輸出。 即輸出P%1000000007 2、代碼 2

原创 二叉樹的鏡像

1、題目描述 2、代碼 2.1思路:這個題目主要的思路分爲兩步。 (1)先序遍歷這個樹。這裏只能是先序遍歷,中序和後序遍歷都不行 (2)在遍歷訪問根節點的時候,交換每個根節點的左右子樹。 2.2代碼: #include<i

原创 Android studio中獲取debug版本SHA1的方法

在android studio中調用第三方android的sdk的時候,會遇到需要獲得SHA1值的情況,自己也走過很多彎路,現在記載下。 1、找到android studio的Terminal窗口 如下圖所示: 2、輸入命令