秋招笔试错题整理
Keep your head up in failure, and your head down in success.
失敗時,要高昂起頭;成功時,要保持謙遜。
這里大概整理了百分之六十,因為當時只記了這些,僅供大家參考!
try your best!
- 數據結構
-
- 計算機算法必須具備哪五個部分
- 數組
- 鏈表
- 棧
- 隊列
- 樹
- Python
-
- Python 的內置函數
- 對字符串元素的切片
- Python 中字典的定義
- 遍歷列表
- 字符串操作
- 網絡基礎
- 編程基礎
- 軟件測試
-
- 測試基礎
-
- 判定/條件覆蓋的特點(單選)
- 功能測試用例設計方法(單選)
- 系統測試將軟件、硬件、網絡等其他因素結合,對整個軟件進行測試,哪個不是系統測試的內容(單選)
- 在軟件測試過程中,測試人員首先對三個模塊進行測試,測試完成后再將系統所有模塊繼承起來進行集成測試,該測試策略為(單選)
- 關于軟件測試對軟件質量的意義(不定項)
- 邏輯測試覆蓋中,測試覆蓋最強的是:路徑覆蓋
- 軟件的評審一般由哪些人參加?其目的是什么?
- Beta測試與Alpha測試有什么區別?
- 做好測試計劃工作的關鍵 :目的,管理,規范
- 缺陷的生命周期
- 自動化測試和手工測試的比較
- 前置測試模型要點
- 編寫測試計劃的目的
- 確保軟件可靠性度量活動屬于哪個階段
- 軟件生命周期
- 測試工具
- 軟件測試流程
- 測試用例設計
-
- 黑盒測試的優缺點
- V模型和W模型的優缺點
- 軟件測試分為幾個階段?各階段的測試策略和要求是什么?
- 等價類劃分法
- 邊界值分析法
- 哪個方法根據輸入輸出依賴關系設計測試用例
- 游戲測試(考察測試思路)
- 數據庫(MySQL)
-
- SQL 語句
-
- 增加列
- 刪除列
- 刪除表
- drop、truncate、delete 區別
- 關聯查詢
-
- 兩張表關聯查詢
- 三張表關聯查詢
- 數據庫原理
-
- MySQL 的存儲引擎
- MySQL 的觸發器工作原理
- 數據庫系統特點
- 開源數據庫
- 關系型數據庫
- 計算機網絡和操作系統
-
- 網絡
-
- 協議
- 通常一個網站存在 CSRF 漏洞,在沒有其它漏洞輔助的情況下,可以通過 CSRF 漏洞做下面哪件事?
- ip地址中哪個類默認有最多可用的主機地址
- 網絡延遲
- 操作系統
-
- 產生死鎖的必要條件?
- Windows 支持的文件系統分區格式
- 大小端模式
- 多線程中棧與堆是公有的還是私有的?
- 線程的優點
- Linux 命令
-
- 可以監控 Linux 系統資源的命令
- 1>&2 的含義
- tail -f:查看文件尾部內容
- mkdir:創建目錄
- pwd:查看當前路徑
- grep:查找文件中符合條件的字符串
- 編程題
-
- 從頭到尾打印鏈表(棧)
- 最大和的子數組(動態規劃)
- 合并有序數組
- 數組排序之后相鄰數的最大差值(困難)
- 微信紅包
- 輸入任意的年月日信息后輸出對應日期是所屬年的哪一天(10/12)
- 給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數(10/14)
- 分配問題:餅干(10/14)
- 編程實現重復項刪除(有贊)
- 交替位二進制數(有贊)
- 掌上先機、新國都
數據結構
計算機算法必須具備哪五個部分
- 有窮性
- 確切性
- 輸入項
- 輸出項
- 可行性
數組
鏈表
- 單鏈表的插入
q->pNext = p->pNext;
p->pNext = q;
- 若長度為 n 的線性表采用順序存儲結構,在其 i 位置插入 1 個新元素的算法的時間復雜度
O(n)
順序表取值算法的時間復雜度為 O(1)
順序表查找、插入、刪除算法的時間復雜度為 O(n)
棧
- 棧常用的兩種存儲結構
順序棧和鏈棧
隊列
樹
- 紅黑樹已經有 n 個數據,尋找某個 key 是否存在的時間復雜度
O(logn)
紅黑樹是一種自平衡二叉查找樹,是在計算機科學中用到的一種數據結構,典型的用途是實現關聯數組。
Python
Python 的內置函數
- map 函數用法
map 函數是 Python 中內置的高階函數,它的參數為:一個函數 function,一個或多個 sequence。通過把函數 function 依次作用在 sequence 的每個元素上,得到一個新的 sequence 并返回
map 函數不改變原有的 sequence,而是返回一個新的 sequence - lambda 匿名函數
匿名函數是指沒有聲明函數名稱的函數
lambda 函數可以接受任意數量的參數,但函數只能包含一個表達式
lamdba 函數可以返回函數對象,將此函數對象賦值給任何變量
lamdba 函數可以結合 Python 中的內置函數一起使用,例如 map()、filter()
- 對列表進行操作
- filter() 函數
該函數接受一個列表參數和一個 lambda 函數參數,filter() 函數將返回一個新的列表,新的列表中只包含舊列表中被 lambda 函數處理后返回值為 TRUE 的元素
對字符串元素的切片
語法格式:s[start:end:step]
1、其中 s 為字符串的變量名,start 表示切片的起始位置,end 表示截至位置,step 表示步長(默認為 1)
2、當 step 為正值時,如果 start 省略,表示從最左側開始;如果 end 省略,表示到最右側結束
3、當 step 為負值時,切片由右向左進行,如果 start 省略,表示從最右側開始;如果 end 省略,表示到最左側結束
4、切片的結果中包含 start 所在位置的元素但不包括 end 所在位置的元素
Python 中字典的定義
- 字典中的鍵必須唯一,必須是不可變對象。可使用數字、字符串或元組作為鍵。列表是可變對象,不能作為鍵
- 字典中的值可以是任意數據類型
- 字典中的項不存在順序
遍歷列表
字符串操作
網絡基礎
- 高速緩沖區的ARP表是由人工建立的
- IP地址采用分層結構,它由網絡號與主機號兩部分組成
- 數據鏈路層通過重傳可以使丟失或出錯的幀能正確到達接收方
解析:FCS,幀校驗(Frame Check Sequence)發現出錯的幀后,通過 重傳 ,再次發送該幀,從而確保能夠正確達到對方 - 什么是子網?
一個對較大網絡的劃分,使之成為較小的分片 - 某校園網用戶無法訪問外部站點210.102.58.74,管理人員在windows操作系統下可以使用 tracert 210.102.58.7 判斷故障發生在校園網內還是校園網外
解析:
ping 使用來icmp來檢查網絡是否連通,并沒有記錄路徑
tracert 使用icmp包記錄并確定數據包訪問目標所經過的路由,因此可以依據此命令判斷故障發生的位置
netstat 用于監聽端口(netstat -a列出所有端口使用情況)跟本地路由表(netstat -r顯示本地路由表)
arp 是根據IP地址獲取物理地址的一個鏈路層協議 - 下面哪個網絡技術最適合多媒體通信需要?
ATM
解析:ATM是一種為了多種業務設計的通用的面向連接的傳輸模式。它適用于局域網和廣域網。
它具有高速數據傳輸率和支持許多種類型如聲音、數據、傳真、實時視頻、CD質量音頻和圖像的通信。 - 下列技術屬于電路交換網絡的技術包括
TDM
解析:交換技術包括分組交換和電路交換。分組交換: 包括報文交換和分組交換這兩種,虛電路就屬于分組交換,數據報就屬于報文交換。電路交換:TDM時分復用和FDM頻分復用技術 - 計算機內的傳輸是 并行 傳輸,而通信線路上的傳輸是 串行 傳輸
- CSMA/CD適用于有線網絡,而CSMA/CA則廣泛應用于無線局域網
- TCP/IP是一組 支持異種計算機網絡互聯的通信協議
- 運行哪個協議后可用避免交換機之間存在的環路
STP(生成樹協議):是按照樹的結構來構造網絡拓撲,消除網絡中的環路,避免由于環路的存在而造成廣播風暴問題 - FDDI 采用 令牌環網 協議標準
- 作業管理對進入系統的所有作業進行 管理和組織
- 電子郵件系統通常由用戶代理和消息傳輸代理兩大部分組成
- 當一臺計算機發送 E-mail 信息給另外一臺計算機時,下列的哪一個過程正確描述了數據打包的 5 個轉換步驟?
數據,數據段,數據包,數據幀,比特 - TCP 的服務器程序必須先于其客戶程序運行
- IPX地址網絡地址有多少個字節?10
- 以下選項中,不是數據鏈路層協議的基本問題的是 不透明傳輸
三個基本問題:封裝成幀、透明傳輸、差錯檢測
向網絡層提供的服務:無確認的無連接服務、有確認的無連接服務、有確認的面向連接服務 - 下列哪一項不是網卡的基本功能 路由選擇
- 在數據通信中使用曼徹斯偏碼主要原因是 實現對通道過程中收發雙方的數據同步
- 傳輸媒體不屬于物理層
- 網絡中心安裝并配置了ServU-FTP服務器,創建系統用戶,設置訪問時間與下載速度,客戶端使用瀏覽器登錄時提示拒絕訪問,可能的原因是:
ServU沒有創建匿名用戶
ServU與IIS沖突
用戶數達到上限 - 下面關于HTTP協議的說法正確的是:
HTTP是基于TCP協議之上的應用層協議
HTTP協議的ETAG響應頭主要用于信息的過期驗證 - 在何種狀態下可以為路由器改名? 全局模式(配置模式)
- 以太網卡的工作模式有哪幾種?
廣播模式、多播傳送、直接模式、混雜模式 - 一個典型TCP客戶端(主動建立連接,主動斷開連接)會經歷的狀態序列:SYNC_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT
- 幀中繼網是一種 廣域網
- 在虛擬局域網中的邏輯工作組各結點可以分布在同一物理網段上,但不能分布在不同的物理網絡上。請問這句話的說法是正確的嗎? 錯誤
route ADD 目的網絡 MASK 子網掩碼 網關地址 METRIC 跳數 IF 端口號 (跳數和端口號可以省略)- 光纖由三層材料組成,包層的作用是 減低光折射率
- TCP 是面向字節流的傳輸協議,關于 TCP 報文段長度的表述,正確的是 TCP 報文段長度根據對端的接受能力和網絡狀況決定
- 下面關于以太網的描述哪一個是正確的 數據是以廣播方式發送的
- ATM信元的交換方式為 電路交換和分組交換的組合
- IP數據包在傳輸過程中如遇到一些差錯與故障,一般會向源主機發送ICMP 報文
解析:ICMP(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議簇的一個子協議,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然并不傳輸用戶數據,但是對于用戶數據的傳遞起著重要的作用。 - 集線器的缺點 不能過濾網絡流量
集線器的主要功能是: 對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。 - 決定局域網特性的主要技術要素有:傳輸介質、網絡拓撲結構和介質訪問控制方法,其中最為重要的是 介質訪問控制方式
- BGP協議運行在OSI模型的哪一層 應用層
- 帶有子網掩碼255.255.224.0的地址222.201.190.12,使用了如下哪種技術 無類域間路由(CIDR)
- 在TCP/IP體系結構中,直接為ICMP提供服務的協議是 IP
- 在虛擬存儲器中為了提高主存的命中率,可以采取的措施是 增大主存容量
- 在數據通信中,當發送數據出現差錯時,發送端無須進行數據重發的差錯控制方法為 FEC
解析:FEC是是前向糾錯Forward Error Correction, 發送方將要發送的數據附加上一定的冗余糾錯碼一并發送,接收方則根據糾錯碼對數據進行差錯檢測,如發現差錯,由接收方進行糾正。因此不需要重傳 - 關于Http和Https,下面說法正確的是:
1、Http是超文本傳輸協議,信息是明文傳輸,Https則是具有安全性的ssl加密傳輸協議
2、Https由于采用了證書認證機制以及非對稱加密技術,所以安全性更高
編程基礎
- 中央處理器( CPU )可直接讀寫的計算機部件是 內存
- 為獲得下一條指令的地址, CPU 在取指后通常修改 指令計數器的內容
- 為了確定下一條微指令的地址,通常采用的斷定方式,其基本思想是通過 微指令順序控制字段由設計者指定或由設計者指定的判別字段控制產生后繼微指令地址
- 程序運行中需要從鍵盤上輸入多于一個數據時,各數據之間默認應使用 TAB、空格或逗號 符號作為分隔符
軟件測試
測試基礎
判定/條件覆蓋的特點(單選)
答:判定中每個條件的所有可能結果至少出現一次,每個判定本身所有可能結果也至少出現一次
功能測試用例設計方法(單選)
1、等價類劃分法
2、邊界值分析法
3、錯誤猜測法
4、場景法
5、因果圖法和判定表法
6、正交試驗法
系統測試將軟件、硬件、網絡等其他因素結合,對整個軟件進行測試,哪個不是系統測試的內容(單選)
答:路徑測試
在軟件測試過程中,測試人員首先對三個模塊進行測試,測試完成后再將系統所有模塊繼承起來進行集成測試,該測試策略為(單選)
答:非增量集成測試
關于軟件測試對軟件質量的意義(不定項)
1、度量與評估軟件的質量
2、改進軟件開發過程
3、保證軟件質量(有爭議)
邏輯測試覆蓋中,測試覆蓋最強的是:路徑覆蓋
解析:邏輯測試覆蓋是白盒測試法常用的技術。主要的覆蓋標準有6種,強度由弱到強依次是:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋
軟件的評審一般由哪些人參加?其目的是什么?
在正式的會議上將軟件項目的成果(包括各階段的文檔、產生的代碼等)提交給用戶、客戶或有關部門人員對軟件產品進行評審和批準。其目的是找出可能影響軟件產品質量、開發過程、維護工作的適用性和環境方面的設計缺陷,并采取補救措施,以及找出在性能、安全性和經濟方面的可能的改進。
人員:用戶、客戶或有關部門開發人員,測試人員,需求分析師都可以,就看處于評審那個階段
Beta測試與Alpha測試有什么區別?
Beta testing(β測試),是軟件在一個或多個用戶的實際使用環境下進行的測試。開發者通常不在測試現場
Alpha testing (α測試),是由用戶在開發環境下進行的測試,也可以是公司內部的用戶在模擬實際操作環境下進行的受控測試
做好測試計劃工作的關鍵 :目的,管理,規范
1、明確測試的目標,增強測試計劃的實用性編寫
2、堅持“5W”規則:測試的目的(Why),明確測試的范圍和內容(What),確定測試的開始和結束日期(When),指出測試的方法和工具(How),給出測試文檔和軟件的存放位置(Where)
3、采用評審和更新機制
4、分別創建測試計劃與測試詳細規格、測試用例
缺陷的生命周期
新建->提交->確認->分配->修復->驗證->關閉
自動化測試和手工測試的比較
自動化測試可以節省一定的時間和人力成本,提高測試效率。可以從以下幾個方面考慮:
1、覆蓋率
優點:在同等時間內,覆蓋率更高
缺點:只適合回歸測試
2、測試效率
優點:執行相同數量的測試,速度更快
缺點:測試腳本開發耗時長
3、執行可靠性
優點:可靠的按腳本執行,后續定位、復現有明確的配置路徑可循
缺點:沒有手工測試手段靈活
4、資源利用率高
5、可進行壓力、負載、并發、重復等人力不易完成的任務
自動化測試和手工測試之間是相輔相成的關系,優勢互補
前置測試模型要點
前置測試模型是由Robin FGoldsmith等人提出的,是一個將測試和開發緊密結合的模型,該模型提供了輕松的方式,可以使你的項目加快速度
1 開發和測試相結合
2 對每一個交付內容進行測試
3 在設計階段進行計劃和測試設計
4 測試和開發結合在一起
5 讓驗收測試和技術測試保持相互獨立
6 反復交替的開發和測試
7 發現內在的價值
編寫測試計劃的目的
- 使測試工作順利進行
- 使項目參與人員溝通更順暢
- 使測試工作更加系統化
確保軟件可靠性度量活動屬于哪個階段
概要設計
軟件生命周期
需求分析,概要設計,詳細設計,編碼,測試,驗收
測試工具
- Jmeter
Jmeter 是一款使用Java開發的,開源免費的,測試工具,主要用來做功能測試和性能測試(壓力測試/負載測試)。而且用Jmeter 來測試 Restful API, 非常好用 - Postman
Postman 是一種常用的接口測試工具,可以發送幾乎所有類型的HTTP請求。Postman適用于不同的操作系統 - Loadrunner
LoadRunner 是一種預測系統行為和性能的負載測試工具。通過模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題 - Appscan
AppScan 是IBM公司出的一款Web應用安全測試工具,采用黑盒測試的方式,可以掃描常見的web應用安全漏洞 - Robot Framework
Robot Framework 是一款python編寫的功能自動化測試框架。具備良好的可擴展性,支持關鍵字驅動,可以同時測試多種類型的客戶端或者接口,可以進行分布式測試執行。主要用于輪次很多的驗收測試和驗收測試驅動開發(ATDD)
軟件測試流程
需求分析->測試計劃->測試設計->系統測試->回歸測試
測試用例設計
黑盒測試的優缺點
V模型和W模型的優缺點
- V模型
優點:
1、既有底層測試(單元測試)又有高層測試(系統測試)
2、將開發階段清楚地表現出來,便于控制開發的過程
缺點:
1、需求的滿足情況一直到后期的驗收測試才被驗證
2、沒有體現出“盡早地和不斷地進行軟件測試”的原則
- W模型
優點:
1、將測試貫穿到整個軟件的生命周期中,且除了代碼要測試,需求、設計等都要測試
2、更早的介入到軟件開發中,能盡早的發現缺陷進行修復
3、測試與開發獨立起來,并與開發并行
缺點:
1、對有些項目,開發過程中根本沒有文檔產生,故W模型無法使用
2、對于需求和設計的測試技術要求很高,實踐起來很困難
軟件測試分為幾個階段?各階段的測試策略和要求是什么?
等價類劃分法
6~10位自然數的無效等價類:
https://blog.csdn.net/zhangyumumu/article/details/104550524
邊界值分析法
大于1且小于100的邊界值:
正好等于:2,99
剛剛大于:3,100
剛剛小于:1,98
哪個方法根據輸入輸出依賴關系設計測試用例
因果圖
游戲測試(考察測試思路)
- 收到外網玩家反饋問題,策劃認為是正常設計,你如何解決?
- 游戲的新版本上線后,你收到了多個渠道反饋回來的十幾個bug,請問你如何處理?
- 游戲中新增一個每周商城限購活動,商城中水晶價格為30,限購數量為100,周一凌晨四點重置,請針對上述功能,寫出你的測試思路
數據庫(MySQL)
SQL 語句
增加列
alter table tableName add columnName datatype
刪除列
alter table tableName drop column columnName
刪除表
drop table 表名稱
truncate table 表名稱
delete from 表名稱 where 列名稱 = 值
drop、truncate、delete 區別
1、drop(刪除表):刪除表的內容和定義,釋放空間,把整個表都刪掉
2、truncate(清空表中的數據):刪除表中的內容、釋放空間,但不刪除定義(保留表的數據結構)
3、delete(刪除表中的數據):delete 語句用于刪除表中的行。執行刪除的過程是每次從表中刪除一行,并且同時將該行的刪除記錄操作作為事務記錄在日志中保存,以便進行回滾操作
truncate 與不帶 where 的 delete 的區別:只刪除數據,而不刪除表的結構(定義)
4、truncate table:刪除表中的所有行,但表的結構及其列、約束、索引等保持不變
5、對于有外鍵約束引用的表,不能使用 truncate table,而應使用不帶 where 子句的 delete 語句
6、執行速度:一般來說,drop 大于 truncate 大于 delete
7、delete 語句是數據庫操作語言(dml),事務提交后生效,支持回滾、觸發器;truncate、drop 是數據庫定義語言(DDL),操作立即生效,不能回滾,操作不觸發 trigger
關聯查詢
兩張表關聯查詢
內連接:https://editor.csdn.net/md/?articleId=119756645#_264
外連接:https://editor.csdn.net/md/?articleId=119756645#_284
三張表關聯查詢
ATHLETE(Ano, Aname, Asex, Adep)
ITEM(Ino, Iname, Ilocation)
SCORE(Ano, Ino, Score)
數據庫原理
MySQL 的存儲引擎
https://editor.csdn.net/md/?articleId=119756645#MySQL_462
MySQL 的觸發器工作原理
數據庫系統特點
1.數據結構化
2.數據的共享性高,冗余度低,易擴充
3.數據獨立性高
4.數據由DBMS統一管理和控制
開源數據庫
MongoDB, Cassandra, CouchDB, Hypertable, Redis, Riak, Neo4j, HBASE, Couchbase, MemcacheDB, RevenDB and Voldemort
關系型數據庫
Oracle、MySQL/MariaDB、SQL Server、PostgrcSQL、 DB2
計算機網絡和操作系統
網絡
協議
- ARP 表
https://blog.csdn.net/lm409/article/details/80299823
通常一個網站存在 CSRF 漏洞,在沒有其它漏洞輔助的情況下,可以通過 CSRF 漏洞做下面哪件事?
牛客網
答案:
A 獲取網站用戶注冊的個人資料信息
B 獲得其它用戶的Cookie值
C 冒用網站用戶的身份發布信息
ip地址中哪個類默認有最多可用的主機地址
A 類最多:2^24 -1(網絡號 8 位,主機號 24 位)
網絡延遲
定義:在傳輸介質中傳輸所用的時間,即從報文開始進入網絡到它開始離開網絡之間的時間
操作系統
產生死鎖的必要條件?
https://www.cnblogs.com/lancidie/archive/2011/08/20/2147040.html
- 互斥使用
- 不可強占
- 請求和保持
- 循環等待
Windows 支持的文件系統分區格式
- FAT 分區
- FAT 32 分區
- NTFS 分區
大小端模式
大端模式,是指數據的高字節保存在內存的低地址中,而數據的低字節保存在內存的高地址中,這樣的存儲模式有點兒類似于把數據當作字符串順序處理:地址由小向大增加,而數據從高位往低位放;這和我們的閱讀習慣一致。
小端模式,是指數據的高字節保存在內存的高地址中,而數據的低字節保存在內存的低地址中,這種存儲模式將地址的高低和數據位權有效地結合起來,高地址部分權值高,低地址部分權值低。
多線程中棧與堆是公有的還是私有的?
棧是私有的,堆是公有的
在多線程環境下,每個線程擁有一個棧和一個程序計數器。棧和程序計數器用來保存線程的執行歷史和線程的執行狀態,是線程私有的資源。其他的資源(比如堆、地址空間、全局變量)是由同一個進程內的多個線程共享。
線程的優點
https://blog.csdn.net/ffsiwei/article/details/81230374
Linux 命令
可以監控 Linux 系統資源的命令
https://www.cnblogs.com/hanxiaobei/p/5514544.html
- top
- free
- iostat
- netstat
- vmstat
1>&2 的含義
將標準輸出重定向到標準錯誤信息輸出
1、Linux 中支持輸入輸出重定向,0、1和2分別表示標準輸入、標準輸出和標準錯誤信息輸出,可以用來指定需要重定向的標準輸入和標準輸出,例如 2>a.txt 表示將錯誤信息輸出到文件 a.txt 中
2、可以在這三個標準輸入輸出之間實現重定向,例如將錯誤信息重定向到標準輸出,2>&1
tail -f:查看文件尾部內容
mkdir:創建目錄
pwd:查看當前路徑
grep:查找文件中符合條件的字符串
https://www.cnblogs.com/flyor/p/6411140.html
編程題
從頭到尾打印鏈表(棧)
class Solution:# 返回從尾部到頭部的列表值序列,例如[1,2,3]def printListFromTailToHead(self, listNode):# write code herestack = []while listNode:stack.append(listNode.val)listNode = listNode.nextreturn stack[::-1]
最大和的子數組(動態規劃)
class Solution:def FindGreatestSumOfSubArray(self, array):# write code heren = len(array)dp = [ i for i in array]for i in range(1,n):dp[i] = max(dp[i-1]+array[i], array[i])return max(dp)
dp [i] 表示以元素 array[i] 結尾的最大連續子數組和
以 [1,-2,3,10,-4,7,2,-5] 為例:
dp[0] = 1, dp[1] = -1, dp[2] = 3, dp[3] = 13, …
以此類推,dp[i] = max(dp[i-1]+array[i], array[i])
合并有序數組
class Solution:def merge(self , A, m, B, n):# write code herewhile n:A[m] = B[n-1]n -= 1m += 1return A.sort()
數組排序之后相鄰數的最大差值(困難)
微信紅包
描述:某個紅包金額出現的次數超過了紅包總數的一半,給定一個紅包金額數組 gifts ,及它的大小 n ,請返回所求紅包的金額。若沒有金額超過總數的一半,返回 0
https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163?tpId=13&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking
解題思路:排序找中間
1、對數組進行排序,用到 Python 中的 sort() 方法,默認升序排序
2、for 循環遍歷排序后的數組,找到中間的元素,將它返回,即為所求紅包金額
class Solution:def MoreThanHalfNum_Solution(self, numbers):# write code herenumbers.sort()count = 0n = len(numbers) // 2for i in numbers:if i == n:count += 1return numbers[n]
輸入任意的年月日信息后輸出對應日期是所屬年的哪一天(10/12)
給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數(10/14)
分配問題:餅干(10/14)
編程實現重復項刪除(有贊)
刪除給定字符串內相鄰并相同的字母。反復執行重復項刪除操作
交替位二進制數(有贊)
給定一個整數,檢查他是否為交替位二進制數
掌上先機、新國都
- 測試工程師的工作職責
提高交付軟件的質量和效率
- 壓力測試、負載測試和性能測試關系?TPS和QPS有什么區別?
答:https://blog.csdn.net/qq_41949208/article/details/106670596
壓力測試:是在一定的負荷條件下,長時間連續運行系統給系統性能造成的影響
負載測試:在一定的工作負荷下,給系統造成的負荷及系統響應的時間。
TPS:Transactions Per Second,意思是每秒事務數,具體事務的定義,都是人為的,可以一個接口、多個接口、一個業務流程等等。一個事務是指事務內第一個請求發送到接收到最后一個請求的響應的過程,以此來計算使用的時間和完成的事務個數。
以單接口定義為事務為例,每個事務包括了如下3個過程:
a.向服務器發請求
b.服務器自己的內部處理(包含應用服務器、數據庫服務器等)
c.服務器返回結果給客戶端
如果每秒能夠完成N次這三個過程,tps就是N;
如果多個接口定義為一個事務,那么,會重復執行abc,完成一次這幾個請求,算做一個tps。
QPS:Queries Per Second,意思是每秒查詢率,是一臺服務器每秒能夠響應的查詢次數(數據庫中的每秒執行查詢sql的次數),顯然,這個不夠全面,不能描述增刪改,所以,不建議用qps來作為系統性能指標。
區別: 如果是對一個查詢接口(單場景)壓測,且這個接口內部不會再去請求其它接口,那么tps=qps,否則,tps≠qps
如果是容量場景,假設n個接口都是查詢接口,且這個接口內部不會再去請求其它接口,qps=n*tps
- web端項目前后分離,接口規范是什么?需要包含哪些內容?
答:接口規范是api接口文檔
https://www.zhihu.com/question/52409287
- 常用的自動測試工具或框架有哪些,自己熟悉的工具以及選擇原因
https://www.cnblogs.com/ustcinfo-qc/p/12124174.html
- 兩個for循環的優缺點
for(i=0; i<n; i++)
{if(condition)...else...
}
if(condition)
{for(i=0; i<n; i++)...
}
else
{for(i=0; i<n; i++)...
}
- 25匹馬賽跑,共有5個賽道,最少賽多少次可以找出前3名,前5名
答:6次,5次
-
測試用例設計
支付寶螞蟻森林或微信紅包功能
在一個Web測試頁面上,有一個輸入框,一個計數器(count)按鈕,用于計算一個文本字符串中字母a出現的個數
http://www.51testing.com/mobile/view.php?itemid=3959150 -
SQL查詢
‘張’姓學生中平均成績大于75分的學生信息
https://www.cnblogs.com/anliux/articles/12775188.html -
編程
將字符串中"hello word"中的word替換成world -
MySQL 中的 union
-
shell 命令獲得域名的 ip 地址
-
加索引帶來的不良影響
-
常見的網站漏洞
-
socket
-
軟件工程的主要環節
-
根據輸出和輸入的依賴關系設計測試用例的方法
-
數據結構測試
-
string s = new string(“xyz”)
-
改變文件所有者的命令:chmod
-
輸入條件的組合情況,選擇什么方法:因果圖法
-
自動化測試局限性
-
單元測試的依據
typedef struct{int32_t a;char b;double c;
}T;
sizeof(T)=
- 軟件測試方法按功能劃分為黑盒測試和白盒測試
- HTTPS 請求交換密鑰的算法和傳輸數據的算法:SSL、TTL
- 測試用例設計:在 Windows 下保存一個文本文件時會彈出保存對話框,針對“文件名”設計測試用例,等價類應該怎樣劃分?
- 編程:將國內手機號碼中間部分改為 * 字段,4到7位
總結
- 上一篇: HTMLCSS 超简单的前端设计入门-2
- 下一篇: 什么是心源性哮喘