「Likou」配列アルゴリズム(Jujuju詳細)

序文

質問の順序:

最初のパス: 配列、スタック、キュー -> リンク リスト -> ツリー -> ハッシュ テーブル -> ダブル ポインター -> グラフ -> シミュレーション、列挙、再帰 -> ソート

2 番目のパス: 二等分 -> スライディング ウィンドウ -> 検索 -> 動的プログラミング -> ナップザック問題 -> 分割統治 -> 貪欲 -> ビット演算

3 番目のパス: トライ -> 結合 - 検索 -> 枝刈り -> 文字列マッチング -> ヒープ -> スキップ リスト -> 線分ツリー

1. 知識ポイントの配列

1、

2.リートコードの質問

T1 

コードは以下のように表示されます。

class Solution {
    public int[] twoSum(int[] nums, int target) {
        //int[] result=new int[2];
        for(int i=0;i<nums.length-1;i++)
        {
                for(int j=i+1;j<nums.length;j++)
                {
                    //System.out.println(i+","+j);
                    if(nums[i]+nums[j]==target)
                    {
                        return new int[]{i,j};
                    }
                }
        }
        return null;
    }
}

T4

class Solution {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        
        //-----------------合并两个数组并且排序-------------------------
        int l1=nums1.length;
        int l2=nums2.length;
        int l=l1+l2;

        int[] combine=new int[l1+l2];
        //--------(被复制的数组,起始位置,结果数组,起始,拷贝的长度)
        System.arraycopy(nums1,0,combine,0,l1);
        System.arraycopy(nums2,0,combine,l1,l2);

        Arrays.sort(combine);
        // for(int e:combine)
        // {
        //     System.out.print(e+" ");
        // }
        //----------------------得到中位数---------------------------
        //是否为偶数
        if(l%2==0)//没有余数,偶数
        {
            return (double)(combine[l/2-1]+combine[l/2])/2;
        }
        else{
            return combine[l/2];
        }
    }
}

おすすめ

転載: blog.csdn.net/weixin_67225910/article/details/132130962