原创 Leetcode刷題之路(21-30)

26.刪除排序數組中的重複項 刪除排序數組中的重複項題目鏈接 首先這道題要求你不能用多餘空間,只讓你用這個數組nums來實現,那麼第一反應就是遇到重複的就去移動,但是仔細想想這種思路挺複雜的,效率也不高。 我們可以反向思考一下,

原创 Leetcode刷題之路(101-110)

102.二叉樹的層次遍歷 二叉樹的層次遍歷題目鏈接 用bfs思想迭代 List<List<Integer>> results; public List<List<Integer>> levelOrder(TreeNo

原创 常用驗證碼圖片識別

在我們的生活中,我們遇到的驗證碼越來越繁雜,本文就是來解決一些常用的驗證碼的識別,一些較爲複雜的驗證碼,如點選驗證碼,邏輯驗證碼等等,聯繫了開發者,說的是後續會逐一實現。 破解驗證碼無非就是兩種方式,一種就是OCR識別,另一種就

原创 Leetcode刷題之路(141-150)

144.二叉樹的前序遍歷 二叉樹的前序遍歷題目鏈接 方法一:遞歸法 List<Integer> results = new ArrayList<>(); public List<Integer> preorderTra

原创 Spring Security入門(十八)-個性化用戶認證流程(二)

一.導學 自定義登錄成功處理器 自定義登錄失敗處理器 默認情況下,spring security 跳到你引發登錄的請求上 訪問/user 要登錄 登錄成功就跳到/user 在SPA下,登錄可能不是表單提交的同步方式來訪問的,而是

原创 SpringData入門(一)-使用傳統方式訪問數據庫

一.導學 什麼是SpringData? 主旨:提供一個熟悉的、一致的,基於Spring框架的數據訪問框架。 簡化數據庫的訪問 官網 https://spring.io/projects/spring-data Spring

原创 Leetcode刷題之路(111-120)

112.路徑總和 路徑總和題目鏈接 同樣bfs思想 public boolean hasPathSum(TreeNode root, int sum) { boolean flag = false;

原创 Leetcode刷題之路(131-140)

136.只出現一次的數字 只出現一次的數字題目鏈接 方法一:排個序,然後再處理 public int singleNumber(int[] nums) { int result = -1; A

原创 Leetcode刷題之路(151-160)

153.尋找旋轉排序數組中的最小值 尋找旋轉排序數組中的最小值題目鏈接 方法一:找到第一個後面小於前面的數就跳出,時間複雜度爲O(n) public int findMin(int[] nums) {

原创 Vue 項目結構(五)

一.環境配置 安裝node.js和git 命令行執行node -v出現版本號就說明node安裝成功 命令行執行npm -v查看npm是否安裝成功,npm是安裝工具 命令行git --version查看git是否安裝成功 去git

原创 Java面試題總結(一)-設計模式、網絡基礎、常用算法

一.設計模式 1.單例模式 A.懶漢式 單例模式最簡單的實現發現,但是不支持多線程,線程不安全 如果想線程安全,在方法上加上synchronized就可以,不過這樣效率低下,99%情況都不會用到 public class Si

原创 Java面試題總結(三)-集合篇、反射篇、GC篇、JDK新特性篇

一.集合篇 1.集合腦圖 2.Collection和Collections區別 前者是多數集合類的上級接口,主要繼承了它的有List、Set 後者是針對集合類的一個幫助類,提供了一系列靜態方法,對各種集合的搜索、排序等操作

原创 Java面試題總結(二)-語法篇、異常篇、多線程篇

一.語法篇 1.簡述下面向對象幾大特徵 面向對象三大特性-封裝、繼承、多態 封裝:在面向對象的編程語言中,對象是封裝最基本單位,封裝就是把描述一個對象的屬性和行爲封裝在一個類中,屬性用變量定義,行爲用方法定義 繼承:提供代碼重用

原创 Vue 中的動畫特效(四)

一.vue中的css動畫原理 1.transition標籤 我們要一個例子來說明吧 先寫一段由變量show控制div顯示的代碼 <div id="app"> <div v-