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

貪心算法練習(xí)day2

這篇具有很好參考價(jià)值的文章主要介紹了貪心算法練習(xí)day2。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

刪除字符

1.題目及要求

貪心算法練習(xí)day2,貪心算法,算法

2.解題思路

1)初始化最小字母為‘Z’,確保任何字母都能與之比較

2)遍歷單詞,找到當(dāng)前未刪除字母中的最小字母

3)獲取當(dāng)前位置的字母? current = word.charAt(i);

4)刪除最小字母之前的所有字母? word=word.substring(index+1);

5)? 將最小字母添加到結(jié)果字符,更新剩余可刪除字母數(shù)量 t -= index ;

3.詳細(xì)代碼

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String word=scan.next();
        int t=scan.nextInt();//刪除字母的數(shù)量
        char min;
        char current;//存儲(chǔ)當(dāng)前遍歷到的字母
        int index=0;//從左到右t個(gè)字母中最小字母的位置,找到將其保存,并且刪除它之前的所有字母,之后的字母去它后面尋找
        String result="";//存儲(chǔ)結(jié)果單詞
        while(t>0){
            min='Z';
            for (int i = 0; i < word.length(); i++) {
                current=word.charAt(i);
                if(current<min){
                    min=current;
                    index=i;
                }
            }
            //獲取到t個(gè)字母里面的最小字母之前的字母數(shù),刪除操作
            word= word.substring(index+1);//第一趟確定第一小的字母,第二趟第二小,以此類(lèi)推
            result+=min;
            t-=index;//還能刪除的字母數(shù)量
        }
        System.out.println(result+word);//記得把word剩余的字母補(bǔ)上哦
        scan.close();
    }
}

4.學(xué)習(xí)要點(diǎn)

1)讀取用戶(hù)輸入的字符,字符串,整數(shù)...等等

Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
char a = scan.next().charAt(0);
int a = scan.nextInt();

2)charAt(int index) String類(lèi)的一個(gè)方法

貪心算法練習(xí)day2,貪心算法,算法

?3)substring()

貪心算法練習(xí)day2,貪心算法,算法

搬磚

1.題目及要求

貪心算法練習(xí)day2,貪心算法,算法

2.解題思路

貪心+01背包+排序

先循環(huán)輸入每件物品的重量,價(jià)值,以及重量?jī)r(jià)值之和,存放到二維數(shù)組里。

然后依據(jù)數(shù)組里的某一特性進(jìn)行排序,用到Arraya.sort()方法

外層循環(huán)遍歷每件物品。內(nèi)層循環(huán)從背包的最大容量到當(dāng)前物品的重量。

3.詳細(xì)代碼

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        final int count = scan.nextInt();
        int[][] structs = new int[count + 1][3]; // 這里用數(shù)組。注意:Record類(lèi)(類(lèi)似C語(yǔ)言結(jié)構(gòu)體)是Java14特性,不能用
        int capacity = 0;
        for (int i = 1; i <= count; ++i) {
            int wi = scan.nextInt(), vi = scan.nextInt();
            capacity += wi;
            structs[i][0] = wi;
            structs[i][1] = vi;
            structs[i][2] = wi + vi;
        }
        scan.close();
        Arrays.sort(structs, Comparator.comparingInt(struct -> struct[2])); // 根據(jù)sum排序(lambda表達(dá)式,相當(dāng)于匿名內(nèi)部類(lèi))
        // 這里用滾動(dòng)數(shù)組更方便,因?yàn)槭堑剐虮闅v,0-1背包滾動(dòng)數(shù)組詳解:https://www.bilibili.com/video/BV1BU4y177kY/
        int[] dp = new int[capacity + 1];
        for (int i = 1; i <= count; ++i) {
            int wi = structs[i][0], vi = structs[i][1];
            for (int j = capacity; j >= wi; --j)
                if (j - wi <= vi)
                    dp[j] = Math.max(dp[j - wi] + vi, dp[j]);
        }
        Arrays.sort(dp);
        System.out.println(dp[capacity]);
    }
}

4.學(xué)習(xí)要點(diǎn)

1)Arrays.sort()方法

貪心算法練習(xí)day2,貪心算法,算法

2)i++,++i ;

貪心算法練習(xí)day2,貪心算法,算法

3)循環(huán)輸入每個(gè)物品的信息文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-829164.html

      for (int i = 1; i <= count; ++i) {
            int wi = scan.nextInt(), vi = scan.nextInt();
            capacity += wi;
            structs[i][0] = wi;
            structs[i][1] = vi;
            structs[i][2] = wi + vi;
        }

到了這里,關(guān)于貪心算法練習(xí)day2的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 408復(fù)試day2(7大排序算法)

    7大排序算法總結(jié): 首先排序分為內(nèi)排序和外排序: 內(nèi)排序是指待排序的記錄放置在內(nèi)存,而外排序是指排序的過(guò)程中需要對(duì)內(nèi)存進(jìn)行訪(fǎng)問(wèn)。其中穩(wěn)定的排序有“插冒歸”,即插入排序、冒泡排序、歸并排序。 1.冒泡排序 算法原理: ①初始時(shí)有序區(qū)為空,即全部記錄為無(wú)序

    2024年02月15日
    瀏覽(19)
  • 【算法】貪心算法練習(xí)一

    【算法】貪心算法練習(xí)一

    個(gè)人主頁(yè) : zxctscl 如有轉(zhuǎn)載請(qǐng)先通知 一、貪心策略:解決問(wèn)題的策略,局部最優(yōu)-全局最優(yōu) 把解決問(wèn)題的過(guò)程分為若干步; 解決每一步的時(shí)候,都選擇當(dāng)前看起來(lái)“最優(yōu)的”解法; 希望得到全局最優(yōu)。 二、貪心策略的正確性 因?yàn)橛锌赡堋柏澬牟呗浴笔且粋€(gè)錯(cuò)誤的方法 正確

    2024年04月25日
    瀏覽(66)
  • 【大廠(chǎng)算法面試沖刺班】day2:合并兩個(gè)有序鏈表

    將兩個(gè)升序鏈表合并為一個(gè)新的 升序 鏈表并返回。新鏈表是通過(guò)拼接給定的兩個(gè)鏈表的所有節(jié)點(diǎn)組成的。 根據(jù)以上規(guī)律考慮本題目: 終止條件:當(dāng)兩個(gè)鏈表都為空時(shí),表示我們對(duì)鏈表已合并完成。 如何遞歸:我們判斷 l1 和 l2 頭結(jié)點(diǎn)哪個(gè)更小,然后較小結(jié)點(diǎn)的 next 指針指向

    2024年01月23日
    瀏覽(16)
  • 貪心算法+練習(xí)

    貪心算法+練習(xí)

    正值國(guó)慶之際,祝愿祖國(guó)繁榮昌盛,祝愿朋友一生平安!終身學(xué)習(xí),奮斗不息! 目錄 1.貪心算法簡(jiǎn)介 2.貪心算法的特點(diǎn) 3.如何學(xué)習(xí)貪心算法 題目練習(xí)(持續(xù)更新) 1.檸檬水找零(easy) 算法原理 代碼實(shí)現(xiàn) 證明(交換論證法) 貪心策略:解決問(wèn)題的一種策略, 由局部最優(yōu)-全

    2024年02月08日
    瀏覽(39)
  • 【Java數(shù)據(jù)結(jié)構(gòu)與算法】Day2-高級(jí)排序(希爾、歸并、快速、計(jì)數(shù))

    【Java數(shù)據(jù)結(jié)構(gòu)與算法】Day2-高級(jí)排序(希爾、歸并、快速、計(jì)數(shù))

    ?作者簡(jiǎn)介:熱愛(ài)Java后端開(kāi)發(fā)的一名學(xué)習(xí)者,大家可以跟我一起討論各種問(wèn)題喔。 ??個(gè)人主頁(yè):Hhzzy99 ??個(gè)人信條:堅(jiān)持就是勝利! ??當(dāng)前專(zhuān)欄:【Java數(shù)據(jù)結(jié)構(gòu)與算法】 ??本文內(nèi)容:Java數(shù)據(jù)結(jié)構(gòu)與算法中的比較高級(jí)的排序,希爾排序、歸并排序、快速排序、計(jì)數(shù)排序

    2024年02月02日
    瀏覽(34)
  • 算法刷題營(yíng)【Day2】:: 雙指針?biāo)惴☉?yīng)用:滑動(dòng)窗口 :209. 長(zhǎng)度最小的子數(shù)組

    算法刷題營(yíng)【Day2】:: 雙指針?biāo)惴☉?yīng)用:滑動(dòng)窗口 :209. 長(zhǎng)度最小的子數(shù)組

    本內(nèi)容是筆者結(jié)合《代碼隨想錄》總結(jié)所得,記錄學(xué)習(xí)過(guò)程,分享知識(shí)! 目錄: 1. 開(kāi)篇例題:209. 長(zhǎng)度最小的子數(shù)組 2. 題解參考 - - 2.1 方法一:暴力法 - - 2.2 方法二:滑動(dòng)窗口 3. 方法思路點(diǎn)撥:滑動(dòng)窗口 - - 3.1 直白解釋 - - 3.2 本題思路點(diǎn)撥 4. 相關(guān)題集 1. 開(kāi)篇例題:209. 長(zhǎng)度

    2024年02月04日
    瀏覽(32)
  • #算法記錄 | Day33 貪心算法

    #算法記錄 | Day33 貪心算法

    如果加油站提供的油總和大于等于消耗的汽油量,則必定可以繞環(huán)路行駛一周 假設(shè)先不考慮油量為負(fù)的情況,我們從「第 0 個(gè)加油站」出發(fā),環(huán)行一周。記錄下汽油量 gas[i] 和 cost[i] 差值總和 sum_diff,同時(shí)記錄下油箱剩余油量的最小值 min_sum。 如果差值總和 sum_diff 0,則無(wú)論

    2023年04月18日
    瀏覽(19)
  • 算法記錄 | Day37 貪心算法

    算法記錄 | Day37 貪心算法

    思路: 1.一旦出現(xiàn)strNum[i - 1] strNum[i]的情況(非單調(diào)遞增),首先想讓strNum[i - 1]–,然后strNum[i]給為9,這樣這個(gè)整數(shù)就是89,即小于98的最大的單調(diào)遞增整數(shù)。 2.向后遍歷 從前向后遍歷的話(huà),遇到strNum[i - 1] strNum[i]的情況,讓strNum[i - 1]減一,但此時(shí)如果strNum[i - 1]減一了,可能

    2023年04月22日
    瀏覽(17)
  • day27 貪心算法

    day27 貪心算法

    1.什么是貪心? 比如10張鈔票,有1,5,20,100等面額,取五張,如何取得到數(shù)額最多的錢(qián)?每次取面額最大的那張鈔票;就是每個(gè)階段的局部最優(yōu);全局最優(yōu)就是最后拿到的鈔票數(shù)最大;局部最優(yōu)推出全局最優(yōu); 題目描述 題目描述 題目描述 分析:擺動(dòng)序列,就是前后相減保

    2024年02月16日
    瀏覽(16)
  • Day 37 貪心算法 6

    代碼隨想錄? 1. 思路 從后向前判斷,如果不呈現(xiàn)單調(diào)遞增的狀態(tài),后一位變成9,前一位-1。這里局部最優(yōu)是每?jī)晌坏淖顑?yōu)解,從后向前線(xiàn)性遍歷能得到全局最優(yōu)。 但是有一點(diǎn)沒(méi)有想清楚 。如果出現(xiàn)了上述的兩位數(shù)倒序情況,之后的所有數(shù)字都應(yīng)該變成9。例如52583,最小的遞

    2024年02月01日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包