GitHub開源庫火爆項目Java排行第一,89K是程序員都會收藏的項目

程序員面臨著知識總結和學習,是不是糾結知識點沒有那麼容易掌握,亂七八糟分散你的注意力,今天我給大家分享一個項目,覆蓋計算機知識最全面的聚集地,只要你擁有了它,學習在也不是難事。


技術面試必備基礎知識、Leetcode、計算機操作系統、計算機網絡、系統設計、Java、Python、C++


本項目包含了技術面試必備的基礎知識,內容淺顯易懂,你不需要花很長的時間去閱讀和理解成堆的技術書籍就可以快速掌握這些知識,從而節省寶貴的面試複習時間。


GitHub開源庫火爆項目Java排行第一,89K是程序員都會收藏的項目

排行第一項目

目錄結構

如果你是一名開發程序員,我想這個項目不可不得,大類有:

  1. 算法
  2. 操作系統
  3. 網絡
  4. 面向對象
  5. 數據庫
  6. java
  7. 系統設計
  8. 工具
GitHub開源庫火爆項目Java排行第一,89K是程序員都會收藏的項目

分類

✏️ 算法

  • 劍指 Offer 題解
  • Leetcode 題解
  • 算法
  • 後端面試進階指南

操作系統

  • 計算機操作系統
  • Linux

☁️ 網絡

  • 計算機網絡
  • HTTP
  • Socket

面向對象

  • 設計模式
  • 面向對象思想

數據庫

  • 數據庫系統原理
  • SQL
  • Leetcode-Database 題解
  • MySQL
  • Redis

☕️ Java

  • Java 基礎
  • Java 容器
  • Java 併發
  • Java 虛擬機
  • Java I/O

系統設計

  • 系統設計基礎
  • 分佈式
  • 集群
  • 攻擊技術
  • 緩存
  • 消息隊列

工具

  • Git
  • Docker
  • 正則表達式
  • 構建工具

數組中重複的數字

題目鏈接

牛客網

題目描述

在一個長度為 n 的數組裡的所有數字都在 0 到 n-1 的範圍內。數組中某些數字是重複的,但不知道有幾個數字是重複的,也不知道每個數字重複幾次。請找出數組中任意一個重複的數字。

<code>Input:{2, 3, 1, 0, 2, 5}Output:2/<code>

解題思路

要求時間複雜度 O(N),空間複雜度 O(1)。因此不能使用排序的方法,也不能使用額外的標記數組。

對於這種數組元素在 [0, n-1] 範圍內的問題,可以將值為 i 的元素調整到第 i 個位置上進行求解。本題要求找出重複的數字,因此在調整過程中,如果第 i 位置上已經有一個值為 i 的元素,就可以知道 i 值重複。

以 (2, 3, 1, 0, 2, 5) 為例,遍歷到位置 4 時,該位置上的數為 2,但是第 2 個位置上已經有一個 2 的值了,因此可以知道 2 重複:

<code>public boolean duplicate(int[] nums, int length, int[] duplication) {    if (nums == null || length <= 0)        return false;    for (int i = 0; i < length; i++) {        while (nums[i] != i) {            if (nums[i] == nums[nums[i]]) {                duplication[0] = nums[i];                return true;            }            swap(nums, i, nums[i]);        }    }    return false;}private void swap(int[] nums, int i, int j) {    int t = nums[i];    nums[i] = nums[j];    nums[j] = t;}/<code>

更多的面試題,更多的DEMO,更多的知識點,請大家看評論區給了項目地址,謝謝大家了。


分享到:


相關文章: