国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaSE】java刷題--數(shù)組練習(xí)

這篇具有很好參考價值的文章主要介紹了【JavaSE】java刷題--數(shù)組練習(xí)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

本篇講解了一些數(shù)組相關(guān)題目(主要以代碼的形式呈現(xiàn)),主要目的在于鞏固數(shù)組相關(guān)知識。

上一篇?數(shù)組?講解了一維數(shù)組和二維數(shù)組的基礎(chǔ)知識~

【JavaSE】java刷題--數(shù)組練習(xí),java,開發(fā)語言,算法

歡迎關(guān)注個人主頁:逸狼

創(chuàng)造不易,可以點點贊嗎~

如有錯誤,歡迎指出~

題1:實現(xiàn)toString的功能

將數(shù)組元素以字符串的形式輸出在屏幕上

【JavaSE】java刷題--數(shù)組練習(xí),java,開發(fā)語言,算法

思路

首先要判斷空指針和空數(shù)組的情況,利用字符串拼接實現(xiàn)toString功能

    //實現(xiàn)自己的數(shù)組轉(zhuǎn)成字符串
    public static String myToString(int[] array){
        //判斷空指針情況 (沒有指向?qū)ο螅?        if(array==null){
            return null;
        }
        //判斷空數(shù)組情況  (指向的對象為空)
        if(array.length==0){
            return "[]";
        }

        String ret="[";
        for (int i = 0; i < array.length; i++) {
            ret=ret+array[i];
            if(i!= array.length-1){
                ret=ret+" ,";//字符串拼接
            }
        }
        ret+="]";
        return ret;
    }

題2:查找數(shù)組中的元素

順序查找

如果數(shù)組比較大,效率低

    public static int checkNum(int[]array,int key){
        for (int i = 0; i < array.length; i++) {
            if(array[i]==key){
                return i;
            }
        }
        return -1;
    }

二分查找

效率高,前題是建立在當(dāng)前數(shù)組是有序的

//二分查找  
    public static int zheBanFind(int[]array,int key){
        int right=0;
        int left= array.length-1;
        while(right<=left){
            //int mid=(right+left)/2;
            //int mid=(left+(left-righ)/2);//防止越界
            int mid=(right+left)>>>1;//右移一位,相當(dāng)于除法
            if(array[mid]<key){
                right=mid+1;
            }
            if(array[mid]>key){
                left=mid-1;
            }
            if(array[mid]==key){
                return mid;
            }
        }
        return -1;
    }

題3:冒泡排序

    //java實現(xiàn)冒泡排序
    public static void BubbleSort(int[]array){
        boolean flag=true;
        for (int i = 0; i < array.length-1; i++) {
            //第一趟
            for (int j = 0; j < array.length-1-i; j++) {//減i表示每一趟都比上一趟少一次
                if(array[j]>array[j+1]){
                    int tmp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=tmp;
                    flag=false;
                }
            }
            if(flag==true){
                break;
            }
        }
    }

題4:數(shù)組的逆置

//數(shù)組的逆置
    public static void reverse(int[]array){
        int left=0;
        int right= array.length-1;
        while(left<right){
            int tmp=array[left];
            array[left]=array[right];
            array[right]=tmp;
            left++;
            right--;
        }
    }

題5:數(shù)組的拷貝

將數(shù)組重新拷貝一份,當(dāng)然java中自帶了拷貝方法copyOf(既可以拷貝,又可以擴容)

    }
    //數(shù)組的拷貝
    public static int[] copy1(int[]array){
        int[]tmp=new int[array.length];
        for (int i = 0; i < array.length; i++) {
            tmp[i]=array[i];
        }
        return tmp;
    }

    
public static void main(String[] args) {
        int[]array={9,8,7,6,5,4,3,2};

        //Java里自帶的拷貝
        /**
         * 可以看作是擴容
         */

        int[] cp=Arrays.copyOf(array,array.length*2);
        System.out.println(Arrays.toString(cp));

        //數(shù)組填充  可以局部填充
        int[] array4=new int[10];
        Arrays.fill(array4,1,6,666);//在數(shù)組array4中的【1,6)的位置填充666
        System.out.println(Arrays.toString(array4));
    }

題6:奇前偶后

將數(shù)組中奇數(shù)放在前面,偶數(shù)放在后面


    public static void fun3(int[] array) {
        int left = 0;
        int right = array.length - 1;
        while (left < right) {
            while (left < right && array[left] % 2 != 0) {//left<right防止越界
                //奇數(shù)
                left++;
            }
            while (left < right && array[right] % 2 == 0) {//left<right防止越界
                //偶數(shù)
                right--;
            }
            int tmp = array[left];
            array[left] = array[right];
            array[right] = tmp;
        }
    }

    public static void main(String[] args){
            int[] array = {1, 2, 3, 5, 6, 7};
            fun3(array);
            System.out.println(Arrays.toString(array));
        }

題7:找加數(shù)

? 在數(shù)組{2,7,11,15}中找兩個數(shù)相加的值為13,返回【2,11】

  
    public static int[]fun4(int[]array,int target){
        int[]ret={-1,-1};//沒找到就直接返回-1
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length; j++) {
                if(array[i]+array[j]==target){
                    ret[0]=array[i];
                    ret[1]=array[j];
                }
            }
        }
        return ret;
    }

    public static void main(String[] args) {
        int[]array={2,7,11,15};
        int[]ret=fun4(array,4);
        System.out.println(Arrays.toString(ret));
    }

題8:判斷是否有連續(xù)三個奇數(shù)

判斷一個數(shù)組中是否存在連續(xù)3個奇數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-846529.html

    
    public static boolean fun8(int[]array){
        int count=0;
        for (int i = 0; i < array.length; i++) {
            if(array[i]%2!=0){
                count++;
                if(count==3){
                    return true;
                }
            }
            else{
                count=0;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int[]array={1,2,3,0,7,9,6};
        System.out.println(fun8(array));
    }

到了這里,關(guān)于【JavaSE】java刷題--數(shù)組練習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • JavaSE進階 | 二維數(shù)組的定義和使用、查找和排序算法

    JavaSE進階 | 二維數(shù)組的定義和使用、查找和排序算法

    目錄 ??二維數(shù)組 ??二維數(shù)組的遍歷 ??動態(tài)初始化二維數(shù)組 ??數(shù)組知識點總結(jié) ??習(xí)題練習(xí) ??用數(shù)組模擬棧 ??模擬酒店的訂房退房功能 ??楊輝三角 ??把數(shù)據(jù)存入數(shù)組,保證值各不相同 ??數(shù)組元素的賦值與數(shù)組復(fù)制 ??數(shù)組元素的反轉(zhuǎn) ??數(shù)組的擴容與縮

    2024年02月14日
    瀏覽(21)
  • C語言-每日刷題練習(xí)

    C語言-每日刷題練習(xí)

    ? 小明正在玩一個“翻硬幣”的游戲。 桌上放著排成一排的若干硬幣。我們用? * ?表示正面,用? o ?表示反面(是小寫字母,不是零),比如可能情形是? **oo***oooo ,如果同時翻轉(zhuǎn)左邊的兩個硬幣,則變?yōu)? oooo***oooo ?,F(xiàn)在小明的問題是:如果已知了初始狀態(tài)和要達到的目

    2024年02月05日
    瀏覽(18)
  • 算法刷題-數(shù)組-有序數(shù)組的平方

    算法刷題-數(shù)組-有序數(shù)組的平方

    力扣題目鏈接 給你一個按 非遞減順序 排序的整數(shù)數(shù)組 nums,返回 每個數(shù)字的平方 組成的新數(shù)組,要求也按 非遞減順序 排序。 示例 1: 輸入:nums = [-4,-1,0,3,10] 輸出:[0,1,9,16,100] 解釋:平方后,數(shù)組變?yōu)?[16,1,0,9,100],排序后,數(shù)組變?yōu)?[0,1,9,16,100] 示例 2: 輸入:nums = [-7,-

    2024年02月08日
    瀏覽(17)
  • 數(shù)據(jù)結(jié)構(gòu)算法leetcode刷題練習(xí)(1)

    數(shù)據(jù)結(jié)構(gòu)算法leetcode刷題練習(xí)(1)

    給定一個三角形 triangle ,找出自頂向下的最小路徑和。 每一步只能移動到下一行中相鄰的結(jié)點上。相鄰的結(jié)點 在這里指的是 下標(biāo) 與 上一層結(jié)點下標(biāo) 相同或者等于 上一層結(jié)點下標(biāo) + 1 的兩個結(jié)點。也就是說,如果正位于當(dāng)前行的下標(biāo) i ,那么下一步可以移動到下一行的下標(biāo)

    2023年04月24日
    瀏覽(20)
  • 【JavaSE】Java基礎(chǔ)語法(二十三):遞歸與數(shù)組的高級操作

    【JavaSE】Java基礎(chǔ)語法(二十三):遞歸與數(shù)組的高級操作

    遞歸的介紹 以編程的角度來看,遞歸指的是方法定義中調(diào)用方法本身的現(xiàn)象 把一個復(fù)雜的問題層層轉(zhuǎn)化為一個與原問題相似的規(guī)模較小的問題來求解 遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復(fù)計算 遞歸的基本使用 遞歸的注意事項 遞歸一定要有出口。否

    2024年02月06日
    瀏覽(31)
  • 【C語言】【典例詳解】【刷題】猜名次&&猜兇手【循環(huán)練習(xí)】

    【C語言】【典例詳解】【刷題】猜名次&&猜兇手【循環(huán)練習(xí)】

    目錄 猜名次問題 典例題目 題目分析: 代碼實現(xiàn): 運行結(jié)果: 猜兇手問題? 典例題目 題目分析 代碼實現(xiàn): 運行結(jié)果: 猜名次: 5位運動員參加了10米臺跳水比賽,有人讓他們預(yù)測比賽結(jié)果: A選手說:B第二,我第三; B選手說:我第二,E第四; C選手說:我第一,D第二;

    2024年02月07日
    瀏覽(21)
  • 算法刷題-數(shù)組-螺旋矩陣

    算法刷題-數(shù)組-螺旋矩陣

    力扣題目鏈接 給定一個正整數(shù) n,生成一個包含 1 到 n^2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。 示例: 輸入: 3 輸出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 這道題目可以說在面試中出現(xiàn)頻率較高的題目, 本題并不涉及到什么算法,就是模擬過程,但卻十分考察對代

    2024年02月08日
    瀏覽(17)
  • C語言刷題(1)----指針數(shù)組

    C語言刷題(1)----指針數(shù)組

    下面指針選題來源于教材、??途W(wǎng)。 1.鍵盤輸入一個字符串,編寫代碼獲取字符串的長度并輸出,要求使用字符指針實現(xiàn)。 示例: 輸入: helloworld 返回值: 10 代碼實現(xiàn) 在這個題目中,循環(huán)是一個關(guān)鍵??赡軐懗蓋hile循環(huán)更好理解。當(dāng)p所指向的地址的內(nèi)容不為空,即*p!=0時,

    2024年02月03日
    瀏覽(28)
  • 【算法刷題之?dāng)?shù)組篇(1)】

    【算法刷題之?dāng)?shù)組篇(1)】

    (1)題目描述 給你一個正整數(shù) n ,生成一個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的 n x n 正方形矩陣 matrix 。 (2)方法與思路(模擬) 1.首先明白螺旋矩陣的拐點是在哪里,并且在旋轉(zhuǎn)一周后邊界值會有哪些變化。 2.先定義四個變量,分別來表示這個正方形

    2024年02月11日
    瀏覽(21)
  • 【算法刷題之?dāng)?shù)組篇(2)】

    【算法刷題之?dāng)?shù)組篇(2)】

    (1)題目描述 給定一個排序數(shù)組和一個目標(biāo)值,在數(shù)組中找到目標(biāo)值,并返回其索引。如果目標(biāo)值不存在于數(shù)組中,返回它將會被按順序插入的位置。 請必須使用時間復(fù)雜度為 O(log n) 的算法。 (2)方法及思路(二分查找) 考慮這個插入的位置 pos,它成立的條件為: num

    2024年02月10日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包