原创 CCF模擬試題-最大的矩形

問題描述 在橫軸上放了n個相鄰的矩形,每個矩形的寬度是1,而第i(1 ≤ i ≤ n)個矩形的高度是hi。這n個矩形構成了一個直方圖。例如,下圖中六個矩形的高度就分別是3, 1, 6, 5, 2, 3。 請找出能放在給定直方圖裏面

原创 Android內部存儲

Android手機裏,除了SD卡外部存儲以外,還有一部分內部存儲,內部存儲不是電腦上的內存,它是斷電以後依然可以保存數據的,它主要用來裝Android操作系統的文件,它們不root是無法看到的。但是內部存儲讀取速度較快,相當於電腦的系統盤

原创 JAVA多線程(2)

在上一篇博客中,提到了一個火車售票的問題,但其實還有一個問題沒有考慮到。比如一個售票點正在售票,並且此時只剩最後一張票了,但還沒有對庫存的票進行減一,這個時候另一個售票點又來了一個人要買票,售票員一查還有一張票,於是又賣了出去。這樣最後一

原创 Android UI 控件--(multi)AutoCompleteTextView、查看原文件、修改顏色

AutoCompleteTextView是一種能夠自動補全的文本框,而multiAutoCompleteTextView是一種能夠識別分隔符的自動補全文本框。 public class MainActivity extends A

原创 socket實現TCP通信

TCP是一種可靠的,面向連接的協議。 在socket中,建立TCP連接的過程大致如下: 服務器端: 1.初始化套接字 2.創建服務器socket 3.將本機地址與服務器socket綁定在一起 4.服務器開始監聽 5.服務器確認請求(確認之

原创 socket的初始化與IP地址的轉換

socket是介於傳輸層和應用層之間的一個API,它比一般的網絡前端更靠近底層,它可以直接基於TCP/UDP協議甚至網絡層的IP協議進行編程。 WSAStartup()用於初始化windowssockets,返回WSADATA結構體,只

原创 bat批處理編程基本語法2

1.if else語句 (1)if exist a.txt (type a.txt) else (echo 不存在a.txt文件) (2)set a=sb1     set b=sb2     if %a%==%b% (type a.tx

原创 Android UI控件 拖動條SeekBar

之前所講的ProgressBar是不可拖動的,是軟件自動進行的。而像音樂播放器這種拖動條用戶是可以通過拖動來進行操作的,這就需要用到SeekBar。 下面的程序使用SeekBar簡單實現了一個播放器的播放條,沒有進行拖動時會自動

原创 socket實現UDP通信

UDP與TCP不同,是一種無連接的通信方式,相比TCP而言更加靈活。 利用socket實現UDP的方式相比TCP而言也更加簡單。 發送方: 1.初始化套接字 2.創建socket 3.利用sendto發送數據(TCP是send) 4.關閉

原创 socket中三種地址結構體的關係

struct sockaddr {   unsigned short sa_family; /* address family, AF_xxx */   char sa_data[14]; /* 14 bytes of protocol

原创 UDP全雙工通信的實現

要解決全雙工通信需要開兩個線程,一個發送線程,要監聽鍵盤的輸入,另一個是接收線程,要監聽接收隊列。 c++的多線程編程問題在此不在這裏敘述了,以後可能會單獨寫一篇總結一下。 由於是全雙工通信,所以兩個客戶端應該是對等的關係,A的發送端口要

原创 linux下shell遞歸遍歷文件夾的實現

實現思路就是深度優先搜索的實現思路,不過第一次在Linux下寫腳本,還需要適應。比如if語句的中括號兩邊一定要留空格之類的。 function dfs { local now_dir now_file now_dir=$1 for

原创 bat批處理編程實例(1)

1.修改文件名 比如將當前文件夾下所有文件的後綴都改爲.rar @echo offfor %%f in (*) do (if "%%f" neq "test.bat" (ren %%f %%f.rar)) 其中ren時改名函數,ren s

原创 JAVA多線程(1)

音樂播放器就是一個進程,QQ也是一個進程,一個進程當中可以有多個線程。一個CPU同一時間只能做一件事,但是在很小的時間間隔內交替就可以給人同時執行多個程序的感覺 設置一個進程的開銷較大,並且進程之間不允許互相訪問內存,通信較爲困難,所以

原创 CCF模擬試題I’m stuck!

問題描述 給定一個R行C列的地圖,地圖的每一個方格可能是'#', '+', '-', '|', '.', 'S', 'T'七個字符中的一個,分別表示如下意思: '#': 任何時候玩家都不能移動到此方格; '+': 當玩家到達這一方