LeetCode題目以及答案

2021-08-19 07:54:44 字數 1602 閱讀 4724

(1)給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數,你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。

示例:

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

因為 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

#複雜版
#!/usr/bin/python

# -*- coding:utf-8 -*-

class solution(object):

def twosum(self, nums, target):

""":type nums: list[int]

:type target: int

:rtype: list[int]

"""d =

for i,num1 in enumerate(nums):

num2 = target - num1

if num2 in nums:

j = nums.index(num2)

print d

del d[0:2]

if __name__ == "__main__":

m = solution()

nums = [1,3,5,2,7,8,9]

target = 13

m.twosum(nums,target)

涉及知識點:enumerate()函式用法:(1)一般用在for迴圈中(2)eg:seq = ['adam','sunsai','lusar'] for i,j in enumerate(seq): print i,seq[j], i+=1
#改進版(有參考他人部分)
/**

* note: the returned array must be malloced, assume caller calls free().

*/int* twosum(int* nums, int numssize, int target)

{ int *p = (int*)malloc(2*sizeof(int));

for(int i = 0;ivoid *malloc(int size);

說明:malloc向系統申請分配size位元組的記憶體空間,返回型別為void*型別。

(1)因為malloc返回的是不確定型別的指標,所以返回之前必須經過型別強制轉換,否則編譯報錯,

如:「 不能將void*賦值給int*變數 」。

(2)malloc只管分配記憶體,並不會初始化,其記憶體空間中的值可能是隨機的。如果分配的這塊空間原來沒有被使用過,

那麼其中每個值都可能是0。相反,空間裡面可能遺留各種各樣的值。

(3)實參為需要分配的位元組大小,如果malloc(1),那麼系統只分配了1個位元組的記憶體空間,這時注意,如果在這塊空間

中存放乙個int值,由於int型別佔4個位元組,那麼還有3個位元組未分配空間,系統就會在已經分配的那1個位元組的基礎上,

依次向後分配3個位元組空間,而這就占有了「別人」的3個位元組空間,「別人」原有的值就被清空了。

(4)分配的空間不再使用時,要用free函式釋放這塊記憶體空間。

LeetCode題目以及答案(9)

題目 有兩種特殊字元。第一種字元可以用一位元0來表示。第二種字元可以用兩位元 10 或 11 來表示。現給乙個由若干位元組成的字串。問最後乙個字元是否必定為乙個一位元字元。給定的字串總是由0結束。示例 1 輸入 bits 1,0,0 輸出 true 解釋 唯一的編碼方式是乙個兩位元字元和乙個一位元字...

LeetCode題目以及答案 10

題目 給乙個非負整數 num,反覆新增所有的數字,直到結果只有乙個數字。例如 設定 num 38,過程就像 3 8 11,1 1 2。由於 2 只有1個數字,所以返回它。高階 你可以不用任何的迴圈或者遞迴演算法,在 o 1 的時間內解決這個問題麼?思路 巢狀兩次迴圈即可 usr bin env py...

leetcode全部題目答案

32.longest valid parentheses given a string containing just the characters and find the length of the longest valid well formed parentheses substring....