免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
LeetCode算法題-Base 7(Java實現(xiàn))

這是悅樂書的第247次更新,第260篇原創(chuàng)

01 看題和準備

今天介紹的是LeetCode算法題中Easy級別的第114題(順位題號是504)。給定一個整數(shù),返回其基數(shù)為7的字符串表示。例如:

輸入:100

輸出:“202”

輸入:-7

輸出:“-10”

注意:輸入范圍為[-1e7,1e7]。

本次解題使用的開發(fā)工具是eclipse,jdk使用的版本是1.8,環(huán)境是win7 64位系統(tǒng),使用Java語言編寫和測試。

02 第一種解法

直接使用包裝類Integer的toString(arg, arg2)方法,將arg轉(zhuǎn)為對應arg2進制的字符串。

public String convertToBase7(int num) {    return Integer.toString(num, 7);}


03 第二種解法

利用迭代的思路來正常解。

特殊情況:當num為0的時候,直接返回字符串0。

正常情況:如果num為負數(shù),先將其轉(zhuǎn)為正數(shù),并做一個標記。為了將num轉(zhuǎn)為7進制的字符串,肯定離不開取余和除法。

我們先來看看題目所給示例100,其7進制數(shù)為202,可以將其拆分為2x7x7 0x7 2,從后往前看,最后一位是將100對7取余,余數(shù)為2,再將其除以7,因為已經(jīng)計算了一位,得到14,14再對7取余,余數(shù)為0,再將其除以7,得到商為2,2再對7取余,余數(shù)為2,2再除以7,商為0,循環(huán)結(jié)束。

所以,思路就是取余后,再除以7,直到num等于0,如果有負號,最后在補上去。

public String convertToBase7_2(int num) {    if (num == 0) {        return "0";    }    StringBuilder sb = new StringBuilder();    boolean flag = false;    if (num < 0) {        flag = true;    }    num = Math.abs(num);    while (num != 0) {        sb.append(num%7);        num /= 7;    }    if (flag) {        sb.append("-");    }    return sb.reverse().toString();}


04 第三種解法

利用遞歸的思路。

第二種解法是利用迭代,我們也可以利用遞歸的方法。如果num為負數(shù),先將其轉(zhuǎn)為正數(shù)再參與計算,如果num小于7,直接返回以num為值的字符串,然后調(diào)用自身,新參數(shù)為num除以7,并且要連接上num對7取余的余數(shù)。

public String convertToBase7_3(int num) {    if (num < 0) {        return "-"   convertToBase7_3(-num);    }    if (num < 7) {        return num   "";    }    return convertToBase7_3(num/7)   num%7;}


05 小結(jié)

算法專題目前已日更超過三個月,算法題文章114 篇,公眾號對話框回復【數(shù)據(jù)結(jié)構(gòu)與算法】、【算法】、【數(shù)據(jù)結(jié)構(gòu)】中的任一關(guān)鍵詞,獲取系列文章合集。

以上就是全部內(nèi)容,如果大家有什么好的解法思路、建議或者其他問題,可以下方留言交流,點贊、留言、轉(zhuǎn)發(fā)就是對我最大的回報和支持!

來源:http://www.icode9.com/content-1-112651.html
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
?LeetCode刷題實戰(zhàn)387:字符串中的第一個唯一字符
LeetCode 504.七進制數(shù)(簡單)
力扣266場周賽
2018程序員不能錯過的編程挑戰(zhàn)網(wǎng)站 Top10
算法很難:《那是因為你沒看過這篇文章》
譚譚的 LeetCode 刷題攻略
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服