leetCode

1.給定一個(gè)整數(shù)數(shù)組和一個(gè)目標(biāo)值说铃,找出數(shù)組中和為目標(biāo)值的兩個(gè)數(shù)。

你可以假設(shè)每個(gè)輸入只對(duì)應(yīng)一種答案,且同樣的元素不能被重復(fù)利用径筏。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因?yàn)?nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

public class leetcode {

     static int[] twoSum(int[] nums, int target) {
        int[] result = new int[2];
        int i,j;
        for (i=0;i<nums.length-1;i++){
            for (j=i+1;j<nums.length;j++)
                if (nums[i]+nums[j]==target){
                    result[0] = i;result[1] = j;
                    break;
                }
        }
        return result;
    }


    public static void main(String[] args) {


        int[] nums = {2, 5,7, 11, 15};
        int target = 9;
        int[] res = twoSum(nums,target);
        for (int n:res
             ) {
            System.out.println(n);
        }

    }
}

2.給定一個(gè) 32 位有符號(hào)整數(shù),將整數(shù)中的數(shù)字進(jìn)行反轉(zhuǎn)障陶。

示例 1:

輸入: 123
輸出: 321

示例 2:

輸入: -123
輸出: -321

示例 3:

輸入: 120
輸出: 21

注意:

假設(shè)我們的環(huán)境只能存儲(chǔ) 32 位有符號(hào)整數(shù)滋恬,其數(shù)值范圍是 [?231, 231 ? 1]。根據(jù)這個(gè)假設(shè)抱究,如果反轉(zhuǎn)后的整數(shù)溢出恢氯,則返回 0。

public class reverse_integer {
    public static int reverse(int x) {
        String len = String.valueOf(x);
        long result = 0,num;
        if (x>0) {
            for (int i = 0; i < len.length(); i++) {
                num = x % 10;
                x = x / 10;
                System.out.println("num:" + num);

                result = result * 10 + num;

                System.out.println("result:" + result);
            }
        }
        else {
            for (int i = 0; i < len.length()-1; i++) {
                num = x % 10;
                x = x / 10;
//                System.out.println("num:" + num);
                result = result * 10 + num;
//                System.out.println("result:" + result);
            }
        }

        if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE)
            result = 0;

        return (int) result;
    }


    public static void main( String args[] ){
        int outcome = reverse(1534236469);
        System.out.println(outcome);
    }
}

注意溢出

 if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE)
            result = 0;

方法2:

public int reverse(int x) { 
    long result = 0; 
    while (x != 0) { 
        result = result * 10 + x % 10; x /= 10; 
    } 
    if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) 
        result = 0; 
    return (int)result; 
}

3.羅馬數(shù)字包含以下七種字符: I鼓寺, V勋拟, X, L妈候,C指黎,D 和 M。

字符 數(shù)值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000

例如州丹, 羅馬數(shù)字 2 寫做 II 醋安,即為兩個(gè)并列的 1。12 寫做 XII 墓毒,即為 X + II 吓揪。 27 寫做 XXVII, 即為 XX + V + II 。

通常情況下所计,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊柠辞。但也存在特例,例如 4 不寫做 IIII主胧,而是 IV叭首。數(shù)字 1 在數(shù)字 5 的左邊习勤,所表示的數(shù)等于大數(shù) 5 減小數(shù) 1 得到的數(shù)值 4 。同樣地焙格,數(shù)字 9 表示為 IX图毕。這個(gè)特殊的規(guī)則只適用于以下六種情況:

I 可以放在 V (5) 和 X (10) 的左邊,來(lái)表示 4 和 9眷唉。
X 可以放在 L (50) 和 C (100) 的左邊予颤,來(lái)表示 40 和 90。 
C 可以放在 D (500) 和 M (1000) 的左邊冬阳,來(lái)表示 400 和 900蛤虐。

給定一個(gè)羅馬數(shù)字,將其轉(zhuǎn)換成整數(shù)肝陪。輸入確保在 1 到 3999 的范圍內(nèi)驳庭。


4.給定一個(gè)排序數(shù)組,你需要在原地刪除重復(fù)出現(xiàn)的元素氯窍,使得每個(gè)元素只出現(xiàn)一次饲常,返回移除后數(shù)組的新長(zhǎng)度。

不要使用額外的數(shù)組空間荞驴,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。

示例 1:

<pre>給定數(shù)組 nums = [1,1,2],

函數(shù)應(yīng)該返回新的長(zhǎng)度 2, 并且原數(shù)組 nums 的前兩個(gè)元素被修改為 1, 2贯城。

你不需要考慮數(shù)組中超出新長(zhǎng)度后面的元素熊楼。</pre>

示例 2:

<pre>給定 nums = [0,0,1,1,1,2,2,3,3,4],

函數(shù)應(yīng)該返回新的長(zhǎng)度 5, 并且原數(shù)組 nums 的前五個(gè)元素被修改為 0, 1, 2, 3, 4

你不需要考慮數(shù)組中超出新長(zhǎng)度后面的元素能犯。
</pre>

說(shuō)明:

為什么返回?cái)?shù)值是整數(shù)鲫骗,但輸出的答案是數(shù)組呢?

請(qǐng)注意,輸入數(shù)組是以“引用”方式傳遞的踩晶,這意味著在函數(shù)里修改輸入數(shù)組對(duì)于調(diào)用者是可見的执泰。

你可以想象內(nèi)部操作如下:

// nums 是以“引用”方式傳遞的。也就是說(shuō)渡蜻,不對(duì)實(shí)參做任何拷貝
int len = removeDuplicates(nums);

// 在函數(shù)里修改輸入數(shù)組對(duì)于調(diào)用者是可見的术吝。
// 根據(jù)你的函數(shù)返回的長(zhǎng)度, 它會(huì)打印出數(shù)組中該長(zhǎng)度范圍內(nèi)的所有元素。
for (int i = 0; i < len; i++) {
print(nums[i]);
}
代碼1:

public static int removeDuplicates(int[] nums) {

        int i,j = 0;
        for (i=1;i<nums.length;){
            if(nums[i]==nums[i-1]){

                for (j = i;j<nums.length-1;j++){
//前移一位
                    nums[j] = nums[j+1];
                }
                nums = Arrays.copyOf(nums, nums.length-1);
            }
            else {
                i++;
//                j = i;
            }

            for (int g:nums
                    ) {
                System.out.print(g);
            }
            System.out.println('\n');
        }

        for (int g:nums
                ) {
            System.out.print(g);
        }

        return nums.length;
    }

輸入:

0011122334

輸出:

011122334

011122334

01122334

0122334

0122334

012334

012334

01234

01234

代碼一沒(méi)有否和要求茸苇,但是結(jié)果是正確的排苍,應(yīng)為忽視了在原數(shù)組中操作的條件

答案:

public int removeDuplicates(int[] nums) {
    if (nums.length == 0) return 0;
    int i = 0;
    for (int j = 1; j < nums.length; j++) {
        if (nums[j] != nums[i]) {
            i++;
            nums[i] = nums[j];
        }
    }
    return i + 1;
}

輸入:

0011122334

輸出:

0011122334
0111122334
0111122334
0111122334
0121122334
0121122334
0123122334
0123122334
0123422334

5.電話號(hào)碼的字母組合

給定一個(gè)僅包含數(shù)字 2-9 的字符串,返回所有它能表示的字母組合学密。

給出數(shù)字到字母的映射如下(與電話按鍵相同)淘衙。注意 1 不對(duì)應(yīng)任何字母。

image

示例:

<pre>輸入:"23"
輸出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
</pre>

說(shuō)明:
盡管上面的答案是按字典序排列的腻暮,但是你可以任意選擇答案輸出的順序腌乡。

class Solution(object):
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        if not digits:
            return []
        dict = {}
        dict[2] = ['a', 'b', 'c']
        dict[3] = ['d', 'e', 'f']
        dict[4] = ['g', 'h', 'i']
        dict[5] = ['j', 'k', 'l']
        dict[6] = ['m', 'n', 'o']
        dict[7] = ['p', 'q', 'r', 's']
        dict[8] = ['t', 'u', 'v']
        dict[9] = ['w', 'x', 'y', 'z']
        res = []
        list = ''
        self.helper(res, list, dict, digits, 0)
        return res
        
    def helper(self, res, list, dict, digits, pos):
        if pos == len(digits):
            res.append(list)
            return
        num = int(digits[pos])
        for c in dict[num]:
            list += c
            self.helper(res, list, dict, digits, pos + 1)
            list = list[:-1]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洋侨,一起剝皮案震驚了整個(gè)濱河市米死,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌侈离,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件做修,死亡現(xiàn)場(chǎng)離奇詭異霍狰,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)饰及,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門蔗坯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人燎含,你說(shuō)我怎么就攤上這事宾濒。” “怎么了屏箍?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵绘梦,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我赴魁,道長(zhǎng)卸奉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任颖御,我火速辦了婚禮榄棵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘潘拱。我一直安慰自己疹鳄,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布芦岂。 她就那樣靜靜地躺著瘪弓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪禽最。 梳的紋絲不亂的頭發(fā)上腺怯,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音川无,去河邊找鬼瓢喉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛舀透,可吹牛的內(nèi)容都是我干的栓票。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼走贪!你這毒婦竟也來(lái)了佛猛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤坠狡,失蹤者是張志新(化名)和其女友劉穎继找,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逃沿,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡婴渡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凯亮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片边臼。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖假消,靈堂內(nèi)的尸體忽然破棺而出柠并,到底是詐尸還是另有隱情,我是刑警寧澤富拗,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布臼予,位于F島的核電站,受9級(jí)特大地震影響啃沪,放射性物質(zhì)發(fā)生泄漏粘拾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一创千、第九天 我趴在偏房一處隱蔽的房頂上張望缰雇。 院中可真熱鬧,春花似錦签餐、人聲如沸寓涨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至体捏,卻和暖如春冠摄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背几缭。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工河泳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人年栓。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓拆挥,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子纸兔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

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

  • “非暴力溝通”的四個(gè)要素:觀察惰瓜、感受、需要和請(qǐng)求汉矿。了解了這些內(nèi)容崎坊,也許會(huì)讓你更好的進(jìn)行愛(ài)的溝通。 一洲拇、觀察 ...
    柒月兮閱讀 488評(píng)論 0 1
  • 你看他那雙眼 澄澈 寧?kù)o 直直的望著你 比那琥珀還澄凈百倍 傲慢神情 一眼 就望得到你心里 你想著世上怎么有如此清...
    Luckycoin_閱讀 65評(píng)論 0 0