Time of Update: 2018-08-22
近日,微軟獲得了一項虹膜識別技術的專利,未來該技術將納入 Windows Hello ,用於微軟旗下的智能手機、筆記本等裝置中。 虹膜識別是生物識別技術技術中的一種。其他的生物識別技術方法包括人臉、指紋、聲音、視網膜、靜脈識別等,而由於人類虹膜上擁有266個特徵點,遠高於其他生物識別技術技術的不到60個特徵點,故被認為具有更高的精準性和安全性。
Time of Update: 2018-08-22
題目一: 問題描述: 輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和一般字元一樣處理。比如輸入字串”I am a student.”輸出字串”student. a am I”. 問題分析: 這種題目比較簡單,翻轉兩次字串就可以。第一次翻轉整體字串,第二次翻轉單個單詞。當然兩次順序可以顛倒~~實現起來比較簡單,主要就是翻轉函數。 代碼實現: #include<iostream>using namespace
Time of Update: 2018-08-22
二層交換技術是發展比較成熟,二層交換器屬資料連結層裝置,可以識別資料包中的MAC地 址資訊,根據MAC地址進行轉寄,並將這些MAC地址與對應的連接埠記錄在自己內部的一個地 址表中。具體的工作流程如下: (1) 當交換器從某個連接埠收到一個資料包,它先讀取包頭中的源MAC地址,這樣它就知道 源MAC地址的機器是連在哪個連接埠上的; (2) 再去讀取包頭中的目的MAC地址,並在地址表中尋找相應的連接埠; (3)
Time of Update: 2018-08-22
題目一: 問題描述: 輸入一棵二叉樹的根節點,求出二叉樹的深度。二叉樹的深度就是二叉樹中從根節點到葉子結點形成的最長路徑的長度。 問題分析: 求出左子樹的深度和右子樹的深度,樹的深度就是左右子樹深度較大值加1. 代碼實現: #include<iostream>using namespace std;#include<cassert>struct BinaryNode{ int _data; BinaryNode* _left;
Time of Update: 2018-08-22
題目一: 問題描述: 輸入一個遞增的數組和一個數字s,在數組中尋找兩個數,使得他們的和剛好是s,如果有多對數位和是s,輸出任意的一對即可。 問題分析: 方法1:簡單粗暴的辦法。 具體實現:從數組的第一個數開始,依次判斷其餘的數與該數的和是不是s,這樣就可以解決問題。時間複雜度是O(N*N)。 方法2:上邊的方法雖然可以解決問題,但是它卻沒有利用題目最重要的條件–數組是升序的。有了這個最重要的條件,題目的解決就不會如上那麼複雜了。 具體實現辦法:
Time of Update: 2018-08-22
題目描述: 輸入一個正整數的數組,把數組裡的所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。並給出演算法的證明。比如輸入數組,{3,32,321},則列印出這3個數字能排出的最小的數字是321323. 題目分析: 這個題目最簡單的做法也就是最容易想到的解法就是把數組中的數字進行全排列,求出最小的數。這樣不是不可以,只是時間空間複雜度比較大。 下邊從一個簡單的例子開始分析:
Time of Update: 2018-08-22
問題描述: 我們把只包含因子2,3,5的數稱為醜數,求按照從小到大的順序的第1500個醜數。例如6,8都是醜數,但14不是,因為14含有因子7.我們習慣上把1當做第一個醜數。 問題分析: 方法1:從1開始,對每一個數都進行判斷,看是否只含有2,3,5的因子,直到找到第1500個醜數為止。這種方法理解起來比較容易,但是卻做了很多無用功,比如,對於非醜數,都進行了模除模除的操作,所以,時間上是比較浪費的。
Time of Update: 2018-08-22
問題描述: 在字串中找出第一個只出現1次的字元。如輸入“abaccdeff”,輸出b。 問題分析: 方法1:最直白最粗暴的方法。 具體實現方法:對於字串中的每一個字元,都去遍曆字串,尋找是否是只出現了一次。這樣一來,時間複雜度是O(N*N),N是字串中字元的個數。這樣的辦法往往不是最好的辦法。 方法2:雜湊法。 既然上邊的方法時間複雜度太高,我們可以採用空間換取時間的雜湊法去解決問題。
Time of Update: 2018-08-22
1、現學現賣,學了就得用上 2、環境描述 1)核心交換器S5700(華為) 2)接入交換器S3700(華為) 3、要求 1)不同vlan之間不能相互訪問,每個vlan只能屬於一個部門 2)部門1兩台終端機配置分別如下 終端1:192.168.162.2/24 網關是:192.168.162.254 終端2:192.168.162.3/24 網關是:192.168.162.254 3)部門2兩台終端機配置分別如下 終端1:192.168.163.2/2
Time of Update: 2018-08-22
題目描述: 在數組中的兩個數字如果前邊的數字大於後邊的數字,則這兩個數值組成一個逆序對。輸入一個數組,求出這個數組中逆序對的總數。 問題分析: 方法1:粗暴的辦法。 具體實現方法:從數組中的第一個元素開始進行遍曆,每次都去該元素之後的元素中尋找多少個小於當前元素的值,然後進行統計。返回結果即可。 時間複雜度O(N*N),空間複雜度O(1)。 方法2:歸併排序的思想。 由於上述方法的時間複雜度比較高,這裡我們不妨採用空間換取時間的方法去統計逆序對的總數。 具體實現辦法:
Time of Update: 2018-08-22
題目描述: 輸入一個整形數組,數組中有正數也有負數。數組中一個或多個連續的整數組成一個子數組,求所有子數組和的最大值,時間複雜度為O(N)。 題目分析: 對於這道題目,我們大多數人一下子就可以想到:我可以列出一個數組的所有的子數組,然後求和,選出最大的和就是需要的結果。如果這樣做的話,子數組的個數就是n(n+1)/2(n為數組的長度).並且求子數組的和的複雜度也不是O(1),所以這樣的方法的時間複雜度一定大於O(n*n),不合理的解決方案。 正確解法: 假如給出一個整形數組:
Time of Update: 2018-08-22
題目一: 題目描述 有一個正整數,請找出其二進位表示中1的個數相同、且大小最接近的那兩個數。(一個略大,一個略小) 給定正整數int x,請返回一個vector,代表所求的兩個數(小的在前)。保證答案存在。 測試範例: 2 返回:[1,4] 題目分析:
Time of Update: 2018-08-22
問題描述: 輸入兩個鏈表,找出鏈表的第一個公用結點。 問題分析: 方法1:粗暴的辦法。 從一個鏈表的第一個結點開始,再另一個鏈表上尋找是否是交點(指向結點的指標一樣),這樣的話,如果一個鏈表的長度是m,另一個鏈表的長度是n,則時間複雜度是O(mn)。 方法2: 我們知道鏈表相交,不僅僅只是結點裡的data值一樣,next指標也是一樣的,也就是說,如果兩個鏈表從某一個結點處開始相交,那麼之後兩個鏈表一定是相交的。即就是,鏈表的相交模型不會是X型,而是Y型。如圖。
Time of Update: 2018-08-22
1.斐波那契數列實現~ 遞迴實現: int fib(int n){if (n == 1 || n == 2)return 1;elsereturn fib(n - 1) + fib(n-2);}非遞迴(迭代法)實現: int fib(int n){int num1 = 1;int num2 = 1;int num3 = 1;while (n > 2){/*num3 = num1 + num2;num1 = num2;num2 =
Time of Update: 2018-08-22
一 Segmentation fault (core dumped)原因 Segmentation fault (core dumped)多為記憶體不當操作造成。null 指標、野指標的讀寫操作,數組越界訪問,破壞常量等。如最近的勢能圖代碼中的鏈表操作,對鏈表的新增和釋放包括賦值等等,如出現不當操作都有可能造成程式崩潰。對每個指標聲明後進行初始化為NULL是避免這個問題的好辦法。排除此問題的最好辦法則是調試。 二 解決辦法
Time of Update: 2018-08-22
詳解getchar()函數 功能:1.接收一個字元~ 2.可以用於清理緩衝區 3.使螢幕暫停 清理緩衝區的程式碼:
Time of Update: 2018-08-22
題目:給定字串“student a am i”,要求輸出“i am a student”.(要求空間複雜度為1,不使用庫函數) 題目分析:student a am i i ma a tneduts(字串整體反轉) i am a
Time of Update: 2018-08-22
楊氏矩陣:就是指一個矩陣中每一行從左向右遞增,每一列從上向下遞增的矩陣。楊氏矩陣的尋找,就是在矩陣中尋找給定元素是否存在。矩陣可以用二維數組表示。當然我們以左下角為起點也是可以~~(下邊代碼有給出,可以自己根據我分析右上方是起點的過程來分析) 下邊給出代碼實現 #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>/
Time of Update: 2018-08-22
Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution. For example, given array S = {-1
Time of Update: 2018-08-22
題目: 霍納規則而的正確性 解答: a)這一段實現霍納規則的代碼的漸進已耗用時間是什麼: 一個迴圈,顯然是 Θ(n) b) 寫出樸素多項式求值的虛擬碼,求這個演算法的漸進已耗用時間,並且與霍納規則進行比較 1 y ← 02 x ← 03 while i < n4 do y ← a[i]*x+y5 x ← x*x6 i ← i+1 漸進已耗用時間也是 Θ(n) 不過比霍納規則多了一步 x ← x*x 慢了一點點 c)