๐ŸŒ•๐ŸŒ•๐ŸŒ• 334. ้€’ๅขž็š„ไธ‰ๅ…ƒๅญๅบๅˆ—

ๅžไฝ›็ซฅๅญ2022ๅนด10ๆœˆ10ๆ—ฅ
  • algorithm
  • Array
ๅฐไบŽ 1 ๅˆ†้’Ÿ

๐ŸŒ•๐ŸŒ•๐ŸŒ• 334. ้€’ๅขž็š„ไธ‰ๅ…ƒๅญๅบๅˆ—

้šพๅบฆ: ๐ŸŒ•๐ŸŒ•๐ŸŒ•

้—ฎ้ข˜ๆ่ฟฐ

img_3.png


่งฃๆณ•

class Solution {
    public boolean increasingTriplet(int[] nums) {
        // ๆ€่ทฏ๏ผš
        // ๆœ€ๅ…ˆๆƒณๅˆฐ็š„ๆ˜ฏ ๆœ€้•ฟ้€’ๅขžๅบๅˆ— ้‚ฃ้“้ข˜๏ผŒ่‹ฅ็‰Œๅ †ๆ•ฐ >= 3 ๅฐฑๅฏไปฅ็›ดๆŽฅ่ฟ”ๅ›ž๏ผŒไฝ†ๆ˜ฏ่ฟ™ๆ ทๅคๆ‚ๅบฆไธบ O(NlogN)
        // ่ฟ™้“้ข˜ๅฏไปฅ้™ไฝŽๅคๆ‚ๅบฆ๏ผŒๆ— ้œ€้ๅŽ†็‰Œๅ †ๆ‰พๅˆฐๆ’ๅ…ฅไฝ็ฝฎ๏ผŒๅ› ไธบ ๆœ€ๅคšๅชๆœ‰ 2 ไธช็‰Œๅ †๏ผŒ้€š่ฟ‡ๅชไฟๅญ˜ ๅ‰ 2 ไธช็‰Œๅ †็š„ๆœ€ๅฐๅ€ผ๏ผŒไธ€ๆฌก้ๅŽ†ๅณๅฏ
        int len = nums.length;
        if(len < 3) {
            return false;
        }
        int first = nums[0]; // ไธ‰ไธชๆ•ฐไธญ็š„ๆœ€ๅฐๅ€ผ๏ผŒไธ‹ๆ ‡ๅ€ผไนŸๆ˜ฏไธ‰ไธชไธญๆœ€ๅฐ็š„
        int second = -1;
        boolean flag = false; // ่กจ็คบ็ฌฌไบŒไธชๆ•ฐ่ฟ˜ๆฒกๆœ‰ๆ‰พๅˆฐๅˆ้€‚็š„
        for(int i = 1; i < len; i ++) {
            int cur = nums[i];
            // System.out.println(first + " : " + second + "  " + cur);
            // ๆœ€ๅธŒๆœ›็š„ๆƒ…ๅ†ตๆ˜ฏ first & second ๅ‡ๅทฒๆ‰พๅˆฐ๏ผŒไธ” cur ๆปก่ถณ cur > second
            if(flag && cur > second) {
                return true; //็›ธๅฝ“ไบŽๅœจๅŽŸๆœ‰ 2 ไธช็‰Œๅ †็š„ๅŸบ็ก€ไธŠๆ–ฐๅปบไธ€ไธช็‰Œๅ †๏ผŒ่พพๅˆฐ 3 ไธช็‰Œๅ †๏ผŒ็›ดๆŽฅ่ฟ”ๅ›ž
            } 
            // ๅˆคๆ–ญๆ–ฐ็š„็‰Œ็š„ๆ’ๅ…ฅไฝ็ฝฎ
            if(cur <= first) {
                first = cur;
            } else {
                // ๆ’ๅ…ฅ็ฌฌไบŒไธช็‰Œๅ †
                second = cur;
                flag = true;
            }
        }
        return false;
    }
}

่พ“ๅ‡บ

img_2.png

ไธŠๆฌก็ผ–่พ‘ไบŽ: 2022/10/10 ไธ‹ๅˆ8:43:48
่ดก็Œฎ่€…: liuxianzhishou