原创 有序數組轉換爲平衡二叉樹(BST)

把有序數組轉換爲平衡二叉樹。<pre name="code" class="cpp">TreeNode* buildTree(vector<int>

原创 迴文字符串

判斷給定的字符串是否爲迴文字符串,忽略非數字和字母字符,比如:“A man, a plan, a canal: Panama"是迴文字符串,但是"race a car"不是迴文字符串。 解析:設置倆個指針,分別指向字符串的首部和尾部,當這

原创 STL:set中使用自定義比較操作

set關聯容器對關鍵字類型有一些限制,關鍵字類型必須定義比較操作,默認情況下,標準庫使用關鍵字類型的<運算符來比較兩個關鍵字。當關鍵字類型是用戶自定義類型時,爲了容器中關鍵字類型正確,我們有三種方式提供正確的關鍵字類型。

原创 標準庫中二分查找算法

標準庫中二分搜索算法:每個算法都提供兩個版本,第一個版本用元素類型的小於運算符(<)來檢測元素,第二個版本則使用給定的比較操作。給定的比較操作可以是函數對象、lambda表達式、定義函數調用操作符類的對象。lower_bound(

原创 go-字符串轉換爲標準mac地址

func ParseNetNameMac(name string) (string, error) { // e.g.: enx0123456789ab v := strings.TrimPrefix(name, "enx") i

原创 go語言之數組切片

在前一篇博客中介紹過,數組的長度在定義之後無法再次修改,數組是值類型,每次傳遞都將產生一份副本。顯然這種數據結構無法滿足開發者的真實需求。Go語言提供數組切片,數組切片就像一個指向數組的指針,實際上它擁有自

原创 go語言之字符串的兩種遍歷方式

在go語言中支持兩種方式遍歷字符串。第一種方式是以字節數組的方式遍歷。例如代碼:str := "beijing,北京" for i := 0; i < len(str); i++{ fmt.Println

原创 go語言之數組

數組是go語言編程中最常用的數據結構之一,數組中的每個數據被稱爲數組元素,一個數組中元素的個數被稱爲數組的長度。數組的聲明方法:var arr [32]int //聲明一個長度爲32的數組,數組中的元素爲int var arr [12]*

原创 leetcode 13 Roman to Integer(羅馬數字轉換爲整數)

把給定羅馬數字轉換爲整型數字。int romanToInt(string s) { int res = 0; for (int i = 0; i < s.size(); ++i) { if (

原创 矩陣中最長連續遞增子序列

Given an integer matrix, find the length of the longest increasing path. From each cell, you can either move to four

原创 有序數組中插入位置

給定一個有序數組和一個目標值,找到目標值在有序數組中的插入位置。比如: [1,3,5,6], 5 → 2 [1,3,5,6], 2 → 1 [1,3,5,6], 7 → 4 [1,3,5,6], 0 → 0int searchInsert

原创 主機字節序大端和小端

    在內存中有兩種存儲整數的方式,一種是將低序字節存儲在起始位置,這稱爲小端字節序,另一種方法是將高序字節存儲在起始位置,這成爲大端字節序。如何判斷所使用的機器是大端字節序還是小端字節序呢?以下程序使用聯合體判斷當前機器是大端還是小端

原创 刪除與替換二進制文件中的某些字節數

/*替換與刪除二進制文件中的某些文件,並且輸出新的文件*/ #include <iostream> #include <fstream> using namespace std; bool copy_binary_file(const

原创 矩陣中是否出現某一條路徑

題目:給定一個字符矩陣和一個字符串,判斷該字符串是否出現在矩陣中,路徑可以從矩陣中的任意一格開始,每一步只能向左、向右、向上、向下移動。例如,在3*4的矩陣abce,sfcs,adee中含有字符串bcced路徑,但是不含有字符串adcb路

原创 子矩陣的最大累加和

題目:給定一個矩陣matrix,其中的值有正、有負、有零,返回子矩陣的最大累加和。例如矩陣matrix爲:   -90 48 78   64 -40 64   -81 -7 66 其中,最大累加和的子矩陣爲:   48 78   -40