原创 每天AC系列(十三):兩數相除

1 題目 LeetCode第29題,計算兩數相除的商,不允許使用乘法,除法,求模運算符。 2 減法 首先判斷結果是否需要加上負號,將商置爲0後,被除數不斷減去除數,同時商自增。最後根據是否有負號返回相應的商。 boolean negativ

原创 每天AC系列(十):兩兩交換鏈表中的節點

1 題目 LeetCode第24題,交換鏈表的相鄰節點. 2 直接交換 直接交換的思想很簡單,遍歷一次鏈表,進行兩兩交換. ListNode newHead = new ListNode(0); newHead.next = head; L

原创 每天AC系列(十二):K個一組翻轉鏈表

1 題目 LeetCode第25題,每K個節點一組進行翻轉,剩下不足K個的保留原狀. 2 直接翻轉 將鏈表分成三部分,已翻轉,待翻轉,未翻轉三部分: 首先,用一個指針t表示要插入的位置的前驅,一邊把head移動k遍,一邊插入在t後面(下

原创 每天AC系列(四):四數之和

1 題目 Leetcode第18題,給定一個數組與一個target,找出數組中的四個數之和爲target的不重複的所有四個數. 2 暴力 List<List<Integer>> result = new ArrayList<>(); if

原创 每天AC系列(二):最接近的三數之和

1 題目 leetcode第16題,給定一個數組與一個目標數,找出數組中其中的三個數,這三個數的和要與目標數最接近。 2 暴力 按慣例先來一次O(n3)的暴力: int temp = nums[0]+nums[1]+nums[2]; for

原创 每天AC系列(七):合併兩個有序鏈表

1 題目 LeetCode第21題,合併兩個有序鏈表. 2 直接合並 因爲已經有序了,類似歸併排序中的合併一樣,操作不難,直接上代碼了. ListNode t = new ListNode(0); ListNode head = t; wh

原创 android+spring boot 選擇,上傳,下載文件

1 概述 前端android,上傳與下載文件,使用OkHttp處理請求,後端使用spring boot+MVC,處理android發送來的上傳與下載請求.這個其實不難,就是特別多奇奇怪怪的坑,因此,希望看到的,不要像筆者這樣踩的那麼痛苦了.

原创 java自定義的getInstance()返回泛型

1.背景 實際中經常使用getInstance()方法返回一個對象,對於工廠模式,傳入對應的參數返回與之相對應的對象.但是,問題來了,返回的對象需要被強制轉換,很麻煩. import java.lang.reflect.*; public

原创 java反射Array的使用

1.什麼是Array Array是一個類的簡寫,全限定類名是java.lang.reflect.Array. 2.Array有什麼用 Array可以代表所有的數組,可以通過Array動態創建與修改裏面的元素. 3.Array使用示例 (1)

原创 log4j2入門hello world

1.什麼是log4j2 (1)log4j log4j是apache的一個開源項目,表示log for java.是一個日誌工具,可以將日誌信息輸出到文件,控制檯等其他地方 ,還可以定義日誌的輸出格式,另外還有日誌級別的區分,可通過配置文件去

原创 java通過ServerSocket與Socket實現通信

首先說一下ServerSocket與Socket. 1.ServerSocket ServerSocket是用來監聽客戶端Socket連接的類,如果沒有連接會一直處於等待狀態.ServetSocket有三個構造方法: (1) ServerS

原创 java7與java9中的try-finally關閉資源

1.java7中的try 在java7之前,對於一些需要使用finally關閉資源的操作,會顯得很臃腫. try { // } catch(Exception e) { // } finally { if(xxxx