Programming是指使用特定的程序語言來創建、設計和實現軟件和應用程序的過程。編程的目的是讓電腦能夠執行特定的任務或操作。
例如,當我們使用編程來創建一個網站,我們需要使用HTML、CSS和JavaScript等程序語言來設計和編寫網站的視覺效果和交互功能。在這個過程中,我們需要創建關於網站內容和結構的代碼。最終,當一個用戶訪問這個網站時,他們能夠看到和互動我們設計好的網站頁面。
其他的程式設計例如:建立行動應用程式、數據科學、網絡安全、人工智能和機器人等等。無論在哪個領域,編程都是講一個問題分解成一組數字計算,並以程式設計的方式實現解決方案的過程。
編程語言和工具:學習並掌握主要的編程語言和開發工具,例如Java、Python、C++、Visual Studio等。
算法和數據結構:瞭解各種基本算法和數據結構,例如排序、搜索、鏈表、數組等等。
面向對像程序設計(OOP):實現OOP的基本概念,例如類、對像、繼承、多態等等。
效能優化:學習如何優化代碼,並掌握對效能進行測量和分析的技能。
版本控制:瞭解版本控制的基本概念和工具,例如Git和SVN,以便更好地管理代碼和合作項目。
軟件設計和架構:熟悉如何設計和實現大型軟件項目,包括分層設計、資料庫架構、API設計等等。
Web開發:掌握Web開發的相關技能,包括HTML、CSS、JavaScript、PHP等等。
資料庫:瞭解SQL和NoSQL資料庫的基本原理,以及如何在自己的代碼中使用它們。
測試:學習如何實施單元測試、集成測試和自動化測試,以確保代碼的正確性和可重用性。
問題解決和Debugging:掌握解決問題和Debugging的技巧,並熟悉各種工具和技術,以便快速定位和修復錯誤。
答案:
def threeSum(nums):
nums.sort()
res = []
for i in range(len(nums)-2):
if i > 0 and nums[i] == nums[i-1]:
continue
l, r = i+1, len(nums)-1
while l < r:
s = nums[i] + nums[l] + nums[r]
if s > 0:
r -= 1
elif s < 0:
l += 1
else:
res.append([nums[i], nums[l], nums[r]])
while l < r and nums[l] == nums[l+1]:
l += 1
while l < r and nums[r] == nums[r-1]:
r -= 1
l += 1
r -= 1
return res
答案:
def maxArea(height):
l, r =0, len(height)-1
ans=0
while (l < r):
area= min(height[l], height[r]) * (r - l)
ans = max(ans, area)
if (height[l] < height[r]):
l += 1
else:
r -= 1
return ans
答案:
def coinPartition(coins):
total_sum = sum(coins)
if total_sum % 2 != 0:
return []
target_sum = total_sum // 2
dp = [[0] * (target_sum+1) for _ in range(len(coins)+1)]
for i in range(1, len(coins)+1):
for j in range(1, target_sum+1):
if coins[i-1] > j:
dp[i][j] = dp[i-1][j]
else:
dp[i][j] = max(dp[i-1][j], dp[i-1][j-coins[i-1]]+coins[i-1])
if dp[-1][-1] != target_sum:
return []
res = []
i, j = len(coins), target_sum
while i > 0 and j >= 0:
if dp[i][j] == dp[i-1][j]:
i -= 1
else:
res.append(i-1)
j -= coins[i-1]
i -= 1
return res[::-1]
答案:
def containsNearbyDuplicate(nums, k):
d = {}
for i in range(len(nums)):
if nums[i] in d and i - d[nums[i]] <= k:
return True
d[nums[i]] = i
return False
答案:
def sharedIndexes(h1, h2):
res = []
for i in range(len(h1)):
if h1[i]:
node = h1[i]
while node:
if h2[i] and node.val in h2[i]:
res.append(i)
break
node = node.next
return res