原创 Java基礎學習必備(2)(繼承、多態、修飾符、抽象類、接口)

文章目錄繼承繼承的概述繼承的好處和弊端繼承中變量的訪問特點super關鍵字繼承中構造方法的訪問特點繼承中成員方法的訪問特點super內存圖方法重寫方法重寫注意事項Java中繼承的注意事項案例:老師和學生案例:貓和狗修飾符包包的概述

原创 Java基礎學習必備(1)(基礎知識、Debug、面向對象基礎、集合基礎)

Java基礎看這裏 文章目錄基礎知識數據類型和變量標識符常見命名約定字符的 + 操作字符串 + 操作短路邏輯運算符數據輸入RandomIDEA中內容輔助鍵和快捷鍵數組常見操作方法方法的調用方法重載方法傳參Debug面向對象基礎類和

原创 深度優先搜索和廣度優先搜索(數據結構)

圖的兩種遍歷方式基本概念深度優先搜索廣度優先搜索DFS與BFS算法效率比較鄰接矩陣的深搜與廣搜鄰接表的深搜與廣搜 基本概念 圖的遍歷定義: 從已給的連通圖中某一頂點出發,沿着一些邊訪遍圖中所有的頂點,且使每個頂點僅被訪問一次,就

原创 抽屜原理(鴿巢原理)

鴿巢原理,也叫抽屜原理,內容很簡單,n + 1只鴿子飛進了n個鴿巢,則至少有一個鴿巢有兩個鴿子。 原理是基本的組合原理,但能解決很多有趣的問題,得到有趣的結論,例如:在1500人中,至少5人生日相同;n個人相互握手,一定有兩人握手

原创 Python3 File對象

FIle對象 重溫以下open() open(file, mode='r') 前面文件名,後面模式(mode),mode參數有: 默認爲文本模式,如果要以二進制模式打開,加上b. file對象使用open 函數來創建,下面是f

原创 Python習題練習 + 簡單語法總結

之前學了語法知識,很長時間過去了,不做題跟本啥也想不起來,此博客主要爲了 回憶語法 ,找了一些水題來練習。 題目清單貨幣系統統計字符串中每個字符出現的次數複數運算判斷是否迴文分段函數英制單位英寸與公制單位釐米換算二進制轉換爲十

原创 並查集_易懂

並查集主要用於處理不相交集合的合併問題。 並查集:將編號爲1 ~ n的n個的對象劃分爲不相交集合,在每個集合中,選擇其中某個元素代表所在集合,在這個集合中,並查集的操作有初始化、合併、查找。 (1)初始化: 定義數字int s[]

原创 L1-009 N個數求和 (20分)(分數求和)

N個數求和 本題的要求很簡單,就是求N個數字的和。麻煩的是,這些數字是以有理數分子/分母的形式給出的,你輸出的和也必須是有理數的形式。 輸入格式: 輸入第一行給出一個正整數N(≤100)。隨後一行按格式a1/b1 a2/b2 …給

原创 Prim算法、Kruskal算法

文章目錄Prim算法Kruskal算法 主要內容: Prim算法 最小生成樹對應的問題一般都是無向圖,最小生成樹所構成的圖總邊權之和最小,但不能是環,否則不能稱之爲"最小"。 Prim算法是求解最小生成樹的算法之一,適用於稠

原创 Floyd打印最短路徑及選址問題

文章目錄算法分析Floyd裸模板Floyd打印最短路徑選址問題 前言:在求任意兩點間的最短路問題中,圖一般較爲稠密,使用Floyd算法可以在O(N ^ 3)的時間實現。當然也可以把每個點作爲起點,求解N次單源最短路徑問題,但較

原创 二分圖(染色法、匈牙利算法)

文章目錄染色法判定二分圖匈牙利算法 主要內容: 染色法判定二分圖 二分圖:把無向圖分爲兩個集合V1, V2,所有邊都在V1和V2之間,V1或V2內部沒有邊。一個圖是否爲二分圖,一般用"染色法"判斷。 例如: (1、2在一個

原创 拓撲排序

文章目錄算法分析有向圖的拓撲排序 算法分析 拓撲排序:把事情看成圖的點,把先後關係看成有向邊,問題轉化爲在圖中求一個有先後關係的排序,就是拓撲排序。拓撲排序用BFS和DFS均可實現。 如何排序? 拓撲排序需要根據點的入度和出度,

原创 走迷宮(BFS)

文章目錄數組模擬queuepython打印路徑 題目描述 給定一個n*m的二維整數數組,用來表示一個迷宮,數組中只包含0或1,其中0表示可以走的路,1表示不可通過的牆壁。 最初,有一個人位於左上角(1, 1)處,已知該人每次可以

原创 哈希表

文章目錄一般哈希拉鍊法開放尋址法字符串哈希 一般哈希 哈希表是一種提供了快速插入和查找操作的數據結構,一般哈希可以用兩種方法來做,拉鍊法和開放尋址法。 拉鍊法 在哈希表中的每個單元格內插上鍊表,鏈表中存儲數據本身,查找時只需要找到

原创 小球下落(二叉樹編號)

小球下落 有一顆二叉樹,最大深度爲D,且所有葉子的深度都相同,所有結點從上到下從左到右編號爲1,2,3,…,2 ^ D - 1.在結點1處放一個小球,它會往下落。每個內結點上都有一個開關,初始全部關閉,當每次有小球落到一個開關上時