阿俊帶你用Kotlin刷算法(四)

本系列通過JavaKotlin這兩種語言來解決力扣上面的算法題夺克,由于本人算法菜鳥一枚弟晚,可能部分題目并不是最優(yōu)題解忘衍,希望能和各位大神共同討論~

阿俊帶你用Kotlin刷算法(一)

阿俊帶你用Kotlin刷算法(二)

阿俊帶你用Kotlin刷算法(三)

阿俊帶你用Kotlin刷算法(四)

項(xiàng)目的GitHub:Algorithm

盛最多水的容器(Container With Most Water)

難度:中等

鏈接:Container With Most Water

代碼

Java

/**
 * Created by TanJiaJun on 2021/6/20.
 * 11. 盛最多水的容器(Container With Most Water)
 * 難度:簡單
 *
 * @see <a >Container With Most Water</a>
 */
class ContainerWithMostWater {

    public static void main(String[] args) {
        // 示例一
        System.out.print("示例一:");

        int[] firstHeights = {1, 8, 6, 2, 5, 4, 8, 3, 7};
        System.out.println(maxArea(firstHeights));

        System.out.print("\n");

        // 示例二
        System.out.print("示例二:");

        int[] secondHeights = {1, 1};
        System.out.println(maxArea(secondHeights));

        System.out.print("\n");

        // 示例三
        System.out.print("示例三:");

        int[] thirdHeights = {4, 3, 2, 1, 4};
        System.out.println(maxArea(thirdHeights));

        System.out.print("\n");

        // 示例四
        System.out.print("示例四:");

        int[] fourthHeights = {1, 2, 1};
        System.out.println(maxArea(fourthHeights));
    }

    /**
     * 雙指針
     * 時(shí)間復(fù)雜度:O(N)逾苫,其中N是數(shù)組heights的大小
     * 空間復(fù)雜度:O(1)
     *
     * @param heights 高度數(shù)組
     * @return 最大容量
     */
    private static int maxArea(int[] heights) {
        // 將左指針放置在數(shù)組的第一個(gè)元素
        int left = 0;
        // 將右指針放置在數(shù)組的最后一個(gè)元素
        int right = heights.length - 1;
        int result = 0;
        // 循環(huán)遍歷直至左右指針到達(dá)同一個(gè)位置
        while (left != right) {
            // 寬度的值可以通過右指針的索引減去左指針的索引得到
            int width = right - left;
            // 根據(jù)題義可知,要想得到最大的盛水面積枚钓,高度就需要取左指針和右指針?biāo)谠氐淖钚≈?            int height = Math.min(heights[left], heights[right]);
            // 取最大的面積
            result = Math.max(result, width * height);
            if (heights[left] < heights[right]) {
                // 如果左指針對(duì)應(yīng)的元素小于右指針對(duì)應(yīng)的元素铅搓,就將左指針向右移動(dòng)一格
                left++;
            } else {
                // 如果左指針對(duì)應(yīng)的元素大于右指針對(duì)應(yīng)的元素,就將右指針向左移動(dòng)一格
                right--;
            }
        }
        return result;
    }
}

Kotlin

import kotlin.math.max
import kotlin.math.min

/**
 * Created by TanJiaJun on 2021/7/20.
 * 11. 盛最多水的容器(Container With Most Water)
 * 難度:簡單
 *
 * @see <a >Container With Most Water</a>
 */
object ContainerWithMostWaterKotlin {

    @JvmStatic
    fun main(args: Array<String>) {
        // 示例一
        print("示例一:")

        val firstHeights = intArrayOf(1, 8, 6, 2, 5, 4, 8, 3, 7)
        println(maxArea(firstHeights))

        print("\n")

        // 示例二
        print("示例二:")

        val secondHeights = intArrayOf(1, 1)
        println(maxArea(secondHeights))

        print("\n")

        // 示例三
        print("示例三:")

        val thirdHeights = intArrayOf(4, 3, 2, 1, 4)
        println(maxArea(thirdHeights))

        print("\n")

        // 示例四
        print("示例四:")

        val fourthHeights = intArrayOf(1, 2, 1)
        println(maxArea(fourthHeights))
    }

    /**
     * 雙指針
     * 時(shí)間復(fù)雜度:O(N)搀捷,其中N是數(shù)組heights的大小
     * 空間復(fù)雜度:O(1)
     *
     * @param heights 高度數(shù)組
     * @return 最大容量
     */
    private fun maxArea(heights: IntArray): Int {
        // 將左指針放置在數(shù)組的第一個(gè)元素
        var left = 0
        // 將右指針放置在數(shù)組的最后一個(gè)元素
        var right = heights.size - 1
        var result = 0
        // 循環(huán)遍歷直至左右指針到達(dá)同一個(gè)位置
        while (left != right) {
            // 寬度的值可以通過右指針的索引減去左指針的索引得到
            val width = right - left
            // 根據(jù)題義可知星掰,要想得到最大的盛水面積,高度就需要取左指針和右指針?biāo)谠氐淖钚≈?            val height = min(heights[left], heights[right])
            // 取最大的面積
            result = max(result, width * height)
            if (heights[left] < heights[right]) {
                // 如果左指針對(duì)應(yīng)的元素小于右指針對(duì)應(yīng)的元素嫩舟,就將左指針向右移動(dòng)一格
                left++
            } else {
                // 如果左指針對(duì)應(yīng)的元素大于右指針對(duì)應(yīng)的元素蹋偏,就將右指針向左移動(dòng)一格
                right--
            }
        }
        return result
    }
}

時(shí)間復(fù)雜度:O(N),其中N是數(shù)組heights的大小至壤。

空間復(fù)雜度:O(1)威始。

題解

我們可以使用雙指針解決這道算法題,將左指針放置在數(shù)組的第一個(gè)元素像街,將右指針放置在數(shù)組的最后一個(gè)元素黎棠,寬度的值可以通過右指針索引減去左指針索引得到,根據(jù)題義可知镰绎,要想得到最大的盛水面積脓斩,那么高度取決于最小的值,所以我們可以取左指針右指針所在元素的最小值畴栖,要注意的是随静,如果左指針對(duì)應(yīng)的元素小于右指針對(duì)應(yīng)的元素,我們可以將左指針向右移動(dòng)一格吗讶,否則將右指針向左移動(dòng)一格燎猛,直到左指針右指針到達(dá)同一個(gè)位置

整數(shù)轉(zhuǎn)羅馬數(shù)字(Integer to Roman)

難度:中等

鏈接:Integer to Roman

代碼

Java

/**
 * Created by TanJiaJun on 2021/6/27.
 * 12. 整數(shù)轉(zhuǎn)羅馬數(shù)字(Integer to Roman)
 * 難度:中等
 *
 * @see <a >Integer to Roman</a>
 */
class IntegerToRoman {

    public static void main(String[] args) {
        // 示例一
        System.out.print("示例一:");

        int firstNumber = 3;
        System.out.println(intToRoman(firstNumber));

        System.out.print("\n");

        // 示例二
        System.out.print("示例二:");

        int secondNumber = 4;
        System.out.println(intToRoman(secondNumber));

        System.out.print("\n");

        // 示例三
        System.out.print("示例三:");

        int thirdNumber = 58;
        System.out.println(intToRoman(thirdNumber));

        System.out.print("\n");

        // 示例四
        System.out.print("示例四:");

        int fourthNumber = 1994;
        System.out.println(intToRoman(fourthNumber));
    }

    /**
     * 貪心算法
     * 時(shí)間復(fù)雜度:O(N)照皆,其中N是數(shù)組num的位數(shù)
     * 空間復(fù)雜度:O(1)
     *
     * @param num 要轉(zhuǎn)成羅馬數(shù)字的整數(shù)
     * @return 羅馬數(shù)字
     */
    private static String intToRoman(int num) {
        // 枚舉羅馬數(shù)字七種字符
        String[] strs = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
        // 枚舉羅馬數(shù)字七種字符對(duì)應(yīng)的整數(shù)
        int[] ints = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
        StringBuilder stringBuilder = new StringBuilder();
        int index = 0;
        while (index < 13) {
            if (num >= ints[index]) {
                // 如果該數(shù)值大于枚舉的羅馬數(shù)字對(duì)應(yīng)的整數(shù)重绷,就用這個(gè)數(shù)值減去該整數(shù),并且賦值給num
                num -= ints[index];
                // 將該羅馬數(shù)字記錄下來
                stringBuilder.append(strs[index]);
            } else {
                // 如果該數(shù)值小于枚舉的羅馬數(shù)字對(duì)應(yīng)的整數(shù)膜毁,就索引往右邊移動(dòng)一格
                index++;
            }
        }
        return stringBuilder.toString();
    }

}

Kotlin

/**
 * Created by TanJiaJun on 2021/7/21.
 * 12. 整數(shù)轉(zhuǎn)羅馬數(shù)字(Integer to Roman)
 * 難度:中等
 *
 * @see <a >Integer to Roman</a>
 */
object IntegerToRomanKotlin {

    @JvmStatic
    fun main(args: Array<String>) {
        // 示例一
        print("示例一:")

        val firstNumber = 3
        println(intToRoman(firstNumber))

        print("\n")

        // 示例二
        print("示例二:")

        val secondNumber = 4
        println(intToRoman(secondNumber))

        print("\n")

        // 示例三
        print("示例三:")

        val thirdNumber = 58
        println(intToRoman(thirdNumber))

        print("\n")

        // 示例四
        print("示例四:")

        val fourthNumber = 1994
        println(intToRoman(fourthNumber))
    }

    /**
     * 貪心算法
     * 時(shí)間復(fù)雜度:O(N)昭卓,其中N是數(shù)組num的位數(shù)
     * 空間復(fù)雜度:O(1)
     *
     * @param num 要轉(zhuǎn)成羅馬數(shù)字的整數(shù)
     * @return 羅馬數(shù)字
     */
    private fun intToRoman(num: Int): String =
            StringBuilder()
                    .apply {
                        var number = num
                        // 枚舉羅馬數(shù)字七種字符
                        val strs = arrayOf("M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I")
                        // 枚舉羅馬數(shù)字七種字符對(duì)應(yīng)的整數(shù)
                        val ints = intArrayOf(1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1)
                        var index = 0
                        while (index < 13) {
                            if (number >= ints[index]) {
                                // 如果該數(shù)值大于枚舉的羅馬數(shù)字對(duì)應(yīng)的整數(shù),就用這個(gè)數(shù)值減去該整數(shù)瘟滨,并且賦值給num
                                number -= ints[index]
                                // 將該羅馬數(shù)字記錄下來
                                append(strs[index])
                            } else {
                                // 如果該數(shù)值小于枚舉的羅馬數(shù)字對(duì)應(yīng)的整數(shù)候醒,就索引往右邊移動(dòng)一格
                                index++
                            }
                        }
                    }
                    .toString()

}

時(shí)間復(fù)雜度:O(N),其中N是數(shù)組num的位數(shù)杂瘸。

空間復(fù)雜度:O(1)倒淫。

題解

根據(jù)題義可知,我們每次比較都優(yōu)先使用最大的數(shù)胧沫,所以該題可以使用貪心算法來解決昌简。

貪心算法又稱為貪婪算法,它是一種在每一步選擇中都采取在當(dāng)前狀態(tài)下最好或者最優(yōu)的選擇绒怨,從而導(dǎo)致結(jié)果是最好或者最優(yōu)的算法纯赎,在現(xiàn)實(shí)生活中找零錢的時(shí)候,我們會(huì)優(yōu)先使用最大面值的紙幣或者硬幣來找零錢南蹂,這樣就可以使對(duì)方拿到的紙幣或者硬幣數(shù)量最少犬金,其實(shí)這就是一種貪心算法的體現(xiàn)。

回到題目六剥,我們可以使用兩個(gè)數(shù)組分別記錄羅馬數(shù)字的七種字符它們對(duì)應(yīng)的整數(shù)晚顷,要注意的是,為了方便我們遍歷疗疟,這兩個(gè)數(shù)組中的元素要按照數(shù)值的大小從大到小存放该默,在遍歷的時(shí)候,如果遇到大于羅馬數(shù)字字符數(shù)組的元素策彤,就用變量number減去該羅馬數(shù)字字符對(duì)應(yīng)的整數(shù)栓袖,并且將該羅馬數(shù)字記錄下來,否則就增加索引值店诗,繼續(xù)遍歷后面的羅馬數(shù)組裹刮。

羅馬數(shù)字轉(zhuǎn)整數(shù)(Roman to Integer)

難度:簡單

鏈接:Roman to Integer

代碼

Java

/**
 * Created by TanJiaJun on 2021/7/19.
 * 13. 羅馬數(shù)字轉(zhuǎn)整數(shù)(Roman to Integer)
 * 難度:簡單
 *
 * @see <a >Roman to Integer</a>
 */
class RomanToInteger {

    public static void main(String[] args) {
        // 示例一
        System.out.print("示例一:");

        String firstStr = "III";
        System.out.println(romanToInt(firstStr));

        System.out.print("\n");

        // 示例二
        System.out.print("示例二:");

        String secondStr = "IV";
        System.out.println(romanToInt(secondStr));

        System.out.print("\n");

        // 示例三
        System.out.print("示例三:");

        String thirdStr = "IX";
        System.out.println(romanToInt(thirdStr));

        System.out.print("\n");

        // 示例四
        System.out.print("示例四:");

        String fourthStr = "LVIII";
        System.out.println(romanToInt(fourthStr));

        System.out.print("\n");

        // 示例五
        System.out.print("示例五:");

        String fifthStr = "MCMXCIV";
        System.out.println(romanToInt(fifthStr));
    }

    /**
     * 時(shí)間復(fù)雜度:O(N),其中N是字符串s的長度
     * 空間復(fù)雜度:O(1)
     *
     * @param s 羅馬數(shù)字
     * @return 整數(shù)
     */
    private static int romanToInt(String s) {
        // 得到第一個(gè)羅馬數(shù)字
        int preNum = getInteger(s.charAt(0));
        int result = 0;
        for (int i = 1, length = s.length(); i < length; i++) {
            int num = getInteger(s.charAt(i));
            // 用這個(gè)數(shù)字的前一個(gè)數(shù)字與其比較
            if (preNum < num) {
                // 根據(jù)題義可知庞瘸,如果這個(gè)數(shù)字大于前一個(gè)數(shù)字捧弃,就做減法運(yùn)算,減去前一個(gè)數(shù)字
                result -= preNum;
            } else {
                // 根據(jù)題義可知擦囊,如果這個(gè)數(shù)字小于前一個(gè)數(shù)字违霞,就做加法運(yùn)算,加上前一個(gè)數(shù)字
                result += preNum;
            }
            // 記錄前一個(gè)數(shù)字
            preNum = num;
        }
        // 相加得出最后的結(jié)果
        result += preNum;
        return result;
    }

    /**
     * 通過羅馬數(shù)字字符得到對(duì)應(yīng)的整數(shù)
     *
     * @param roman 羅馬數(shù)字字符
     * @return 整數(shù)
     */
    private static int getInteger(char roman) {
        // 枚舉羅馬數(shù)字七種字符和對(duì)應(yīng)的整數(shù)
        return switch (roman) {
            case 'I' -> 1;
            case 'V' -> 5;
            case 'X' -> 10;
            case 'L' -> 50;
            case 'C' -> 100;
            case 'D' -> 500;
            case 'M' -> 1000;
            default -> 0;
        };
    }

}

Kotlin

/**
 * Created by TanJiaJun on 2021/7/21.
 * 13. 羅馬數(shù)字轉(zhuǎn)整數(shù)(Roman to Integer)
 * 難度:簡單
 *
 * @see <a >Roman to Integer</a>
 */
object RomanToIntegerKotlin {

    @JvmStatic
    fun main(args: Array<String>) {
        // 示例一
        print("示例一:")

        val firstStr = "III"
        println(romanToInt(firstStr))

        print("\n")

        // 示例二
        print("示例二:")

        val secondStr = "IV"
        println(romanToInt(secondStr))

        print("\n")

        // 示例三
        print("示例三:")

        val thirdStr = "IX"
        println(romanToInt(thirdStr))

        print("\n")

        // 示例四
        print("示例四:")

        val fourthStr = "LVIII"
        println(romanToInt(fourthStr))

        print("\n")

        // 示例五
        print("示例五:")

        val fifthStr = "MCMXCIV"
        println(romanToInt(fifthStr))
    }

    /**
     * 時(shí)間復(fù)雜度:O(N)瞬场,其中N是字符串s的長度
     * 空間復(fù)雜度:O(1)
     *
     * @param s 羅馬數(shù)字
     * @return 整數(shù)
     */
    private fun romanToInt(s: String): Int {
        // 得到第一個(gè)羅馬數(shù)字
        var preNum = getInteger(s[0])
        var result = 0
        var i = 1
        val length = s.length
        while (i < length) {
            val num = getInteger(s[i])
            // 用這個(gè)數(shù)字的前一個(gè)數(shù)字與其比較
            if (preNum < num) {
                // 根據(jù)題義可知葛家,如果這個(gè)數(shù)字大于前一個(gè)數(shù)字,就做減法運(yùn)算泌类,減去前一個(gè)數(shù)字
                result -= preNum
            } else {
                // 根據(jù)題義可知癞谒,如果這個(gè)數(shù)字小于前一個(gè)數(shù)字,就做加法運(yùn)算刃榨,加上前一個(gè)數(shù)字
                result += preNum
            }
            // 記錄前一個(gè)數(shù)字
            preNum = num
            i++
        }
        // 相加得出最后的結(jié)果
        result += preNum
        return result
    }

    /**
     * 通過羅馬數(shù)字字符得到對(duì)應(yīng)的整數(shù)
     *
     * @param roman 羅馬數(shù)字字符
     * @return 整數(shù)
     */
    private fun getInteger(roman: Char): Int =
            // 枚舉羅馬數(shù)字七種字符和對(duì)應(yīng)的整數(shù)
            when (roman) {
                'I' -> 1
                'V' -> 5
                'X' -> 10
                'L' -> 50
                'C' -> 100
                'D' -> 500
                'M' -> 1000
                else -> 0
            }

}

時(shí)間復(fù)雜度:O(N)弹砚,其中N是字符串s的長度。

空間復(fù)雜度:O(1)枢希。

題解

根據(jù)題義可知桌吃,如果羅馬數(shù)字一個(gè)小的值放在一個(gè)大的值的左邊,就是做減法運(yùn)算苞轿,例如:IV等于5-1茅诱,結(jié)果是4逗物,否則就做加法運(yùn)算,例如:VI等于5+1瑟俭,結(jié)果是6翎卓,要注意的是,我們每做一次遍歷的時(shí)候摆寄,都要記錄下前一個(gè)數(shù)字失暴,方便我們做比較,其他邏輯的話微饥,代碼也寫了不少注釋逗扒,這里就不再贅述了。

我的GitHub:TanJiaJunBeyond

Android通用框架:Android通用框架

我的掘金:譚嘉俊

我的簡書:譚嘉俊

我的CSDN:譚嘉俊

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末欠橘,一起剝皮案震驚了整個(gè)濱河市矩肩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌肃续,老刑警劉巖蛮拔,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異痹升,居然都是意外死亡建炫,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門疼蛾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肛跌,“玉大人,你說我怎么就攤上這事察郁⊙苌鳎” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵皮钠,是天一觀的道長稳捆。 經(jīng)常有香客問我,道長麦轰,這世上最難降的妖魔是什么乔夯? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮款侵,結(jié)果婚禮上末荐,老公的妹妹穿的比我還像新娘。我一直安慰自己新锈,他們只是感情好甲脏,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般块请。 火紅的嫁衣襯著肌膚如雪娜氏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天墩新,我揣著相機(jī)與錄音贸弥,去河邊找鬼。 笑死抖棘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的狸涌。 我是一名探鬼主播切省,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼帕胆!你這毒婦竟也來了朝捆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤懒豹,失蹤者是張志新(化名)和其女友劉穎芙盘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脸秽,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡儒老,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了记餐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驮樊。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖片酝,靈堂內(nèi)的尸體忽然破棺而出囚衔,到底是詐尸還是另有隱情,我是刑警寧澤雕沿,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布练湿,位于F島的核電站,受9級(jí)特大地震影響审轮,放射性物質(zhì)發(fā)生泄漏肥哎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一疾渣、第九天 我趴在偏房一處隱蔽的房頂上張望贤姆。 院中可真熱鬧,春花似錦稳衬、人聲如沸霞捡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碧信。三九已至赊琳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砰碴,已是汗流浹背躏筏。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呈枉,地道東北人趁尼。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像猖辫,于是被迫代替她去往敵國和親酥泞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容

  • 本系列通過Java和Kotlin這兩種語言來解決力扣上面的算法題啃憎,由于本人算法菜鳥一枚芝囤,可能部分題目并不是最優(yōu)題解...
    譚嘉俊閱讀 282評(píng)論 0 1
  • 本系列通過Java和Kotlin這兩種語言來解決力扣上面的算法題,由于本人算法菜鳥一枚辛萍,可能部分題目并不是最優(yōu)題解...
    譚嘉俊閱讀 542評(píng)論 0 1
  • 本系列通過Java和Kotlin這兩種語言來解決力扣上面的算法題悯姊,由于本人算法菜鳥一枚,可能部分題目并不是最優(yōu)題解...
    譚嘉俊閱讀 502評(píng)論 0 1
  • <center>#1 Two Sum</center> link Description:Given an arr...
    鐺鐺鐺clark閱讀 2,164評(píng)論 0 3
  • 最近正在找實(shí)習(xí)贩毕,發(fā)現(xiàn)自己的算法實(shí)在是不能再渣渣悯许,在網(wǎng)上查了一下,發(fā)現(xiàn)大家都在刷leetcode的題辉阶,于是乎本渣渣也...
    caoxian閱讀 903評(píng)論 0 2