DATA STRUCTURE1 DAY1
6606 ワード
1. Contains-Duplicate
class Solution(object):
def containsDuplicate(self, nums):
nums.sort()
for i in range(len(nums)):
if i>0 and nums[i-1]==nums[i]:
return True
return False
1.nums.sort()で昇順に並べ替えます.2.アレイを巡回する場合、アレイが前のアレイと同じ場合はTRUE、巡回が完了した場合はFALSEに戻る
2.Maximum-Subarray
問題は数学の分野を考える必要があるようだ.
問題の焦点は最初から、負数なら0以上の譲受人要素から加えればいいと思っていました.
nowは現在の配列要素を表し、配列内でループします.
sumはnowの値と以前のsumの値とnowの値を比較することによってより大きな値を得る
resultはsumと比較してsumがresultより大きい場合はresultの値をsum(変数名をmaxとすることが望ましい)に設定します.
例外処理
例外を考えるのは難しすぎるようだ.
いくつかのテスト例だけを見てアルゴリズムを書くことに慣れているので、大きな思考例を変えるべきです.
例外配列内の要素が1つしかない場合は、=>array[0]を返します.
例外配列が負の場合は、=>配列内の要素の最大値を返します.
class Solution(object):
def maxSubArray(self, nums):
#배열의 길이가 1개
if len(nums)==1:
return nums[0]
#배열이 모두 음수일 때
for i in range(len(nums)) :
if nums[i] >=0:
break
else:
if i==len(nums)-1:
return max(nums)
sum=0
result=0
#배열에 0 이상인 원소가 있을 때
for i in range(len(nums)):
now=nums[i]
sum=max(now,sum+nums[i])
if (sum<0):
sum=0
result=max(sum,result)
return result
Reference
この問題について(DATA STRUCTURE1 DAY1), 我々は、より多くの情報をここで見つけました https://velog.io/@refindmysapporo/DATA-STRUCTURE1-DAY1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol