原创 劍指offer:最小的K個數

 題目描述:輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4。 PS:一開始想到map是按key值升序排列,就新建了一個map,value存放數字出現的次數,沒想

原创 劍指offer:把數組排成最小的數

 題目描述 輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字爲321323。 class Solution { publ

原创 字節對齊(struct 和 union)

在沒有#pragma pack(n)宏的情況下,字節對齊應遵循以下三個基本原則: 1、數據成員對齊規則:結構體(struct)或聯合體(union)的數據成員,第一個數據成員放在offset爲0的地方,以後每個數據成員存儲的起始位置

原创 劍指offer:二叉搜索樹與雙向鏈表

題目描述: 輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創建任何新的結點,只能調整樹中結點指針的指向。 /* struct TreeNode { int val; struct TreeNode *left

原创 劍指offer:連續子數組的最大和

 題目描述:例如{6,-3,-2,7,-15,1,2,2},連續子向量的最大和爲8(從第0個開始,到第3個爲止)。  class Solution { public: int FindGreatestSumOfSubArray(ve

原创 劍指offer:二叉搜索樹的後序遍歷序列

 題目描述:輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果,如果是則輸出Yes,否則輸出No(假設輸入的數組的任意兩個數字都互不相同) class Solution { public: bool Verify(

原创 迅雷2016研發工程師筆試題

2、以下關於指針的說法,正確的是() A int *const p與int const *p等價 B const int *p與int *const p等價 C const int *p與int const *p等

原创 兩數交換

第一種方法: int tmp;//中間變量 tmp = a; a = b; b = tmp; 第二種方法: //原理:一個數被另一數異或偶數次還是它本身 a ^= b; b ^= a; a ^= b; 第三種方法: a = a + b;

原创 ZOJ1203

/*prim算法*/ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int n; bool visit

原创 ZOJ1011

#include <stdio.h> #include <stdlib.h> #include <memory.h> #include <string.h> int n, m, k, lev;//樹的層數 int transitio

原创 劍指offer:數組中出現次數超過一半的數字

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

原创 劍指offer:醜數

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

原创 win7(64bit)下pyspider的安裝

想在網上爬一些圖片(你懂的...),不過在windows下安裝pyspider真是費勁啊,廢話不多說,貼出來以饗來者吧。 1、準備工作:python和pip的安裝(http://www.tuicool.com/articles/eiM3

原创 劍指offer:第一個只出現一次的字符位置

題目描述 在一個字符串(1<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符的位置(位置索引從0開始),若爲空串,返回-1 public class Solution { public int Fir

原创 ZOJ1013

#include <iostream> #include <cstring> #define CAVARAN_MAX 101 #define EACH_EQUIPMENT_MAX 501 #define MIN2(x, y) (x <