4 ARTS打卡第四周(2019-08-25)

Algorithm

本周題目:66.加一
題解思路:本道題目總共分為兩種常規(guī)情況,和一種臨界情況。
1.常規(guī)情況一:數(shù)組末位值加一,不發(fā)生進位,直接將末位值加一,返回數(shù)組即可。這是最簡單的情況
2.常規(guī)情況二:數(shù)組末位值加一,發(fā)生進位,從本道題目來講,發(fā)生進位的情況只有當(dāng)前數(shù)組為9,當(dāng)發(fā)生進位后,本位上的數(shù)值必定為0,進位后需要繼續(xù)遍歷該數(shù)組,移動當(dāng)前索引減一,繼續(xù)執(zhí)行以上操作,如若繼續(xù)發(fā)生進位,則繼續(xù)如上操作,反之結(jié)束遍歷,返回數(shù)組結(jié)果。
3.臨界情況:此為常規(guī)情況二的臨界情況,當(dāng)數(shù)組元素全為9時,必定發(fā)生數(shù)組長度擴大一位,如果最后一次遍歷時,發(fā)生進位情況,則出發(fā)此臨界情況處理代碼:數(shù)組長度擴大一位,首位填入1,其余用0填充,返回該構(gòu)造數(shù)組。
題解代碼:

class Solution {
    public int[] plusOne(int[] digits) {
        int begin = digits[digits.length - 1] + 1;
        if (begin > 9) {
            for (int i = digits.length - 1; i >= 0; i--) {
                int flag = digits[i] + 1;
                if (flag > 9) {

                    digits[i] = 0;
                    if (i == 0) {
                        int[] result = new int[digits.length + 1];
                        result[0] = 1;
                        for (int j = 1; j < digits.length; j++) {
                            result[j] = 0;
                        }

                        return result;
                    }
                } else {
                    digits[i] = digits[i] + 1;
                    break;
                }
            }
        } else {
            digits[digits.length - 1] = digits[digits.length - 1] + 1;
        }
        return digits;
    }
}

Review

lambda表達式基礎(chǔ)入門
這是一篇關(guān)于Lambda的基礎(chǔ)用法的簡介,Lambda表達式是Java8的重大變化之一,它的到來讓Java進入了函數(shù)式編程的領(lǐng)域,使用更簡潔的代碼,完成更多的功能,同時也增加代碼的靈活性,讓程序員從冗余的代碼塊中解放出來。在我查找Lambda表達式的文章的時候,我發(fā)現(xiàn)了一篇關(guān)于講述Lambda表達式讓代碼變慢的說法,我個人不贊同這種說法,首先Lambda是Java之后發(fā)展的方向選擇,及時在一些特殊的情況下,的確會變慢一些些,但是這也需要業(yè)務(wù)場景的加持,在可接受的范圍內(nèi)就是OK的。之后,學(xué)到了較為底層的時候,我就會去研究對應(yīng)的場景,看是否變慢。

Tip

Spring 的 AOP機制,是基于Java的代理機制,Spring用了更為強大的框架CGLIB。

Share

lambda表達式基礎(chǔ)入門
這是一篇介紹關(guān)于Lambda的基礎(chǔ)用法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,676評論 0 4
  • 注:之前關(guān)于Java8的認(rèn)知一直停留在知道有哪些修改和新的API上,對Lambda的認(rèn)識也是僅僅限于對匿名內(nèi)部類的...
    mualex閱讀 2,936評論 1 4
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,671評論 1 51
  • 文/安娜 公眾號/安娜日志(ID:anna0535) 高考成績出來了,幾家歡喜幾家憂,作為一個普通一本院校出來的普...
    Anna娜閱讀 1,320評論 0 1
  • 給定一個由整數(shù)組成的非空數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。 最高位數(shù)字存放在數(shù)組的首位, 數(shù)組中每個元素只...
    HaiYi_閱讀 201評論 0 0

友情鏈接更多精彩內(nèi)容