0
0

More than 3 years have passed since last update.

アルゴリズムとライブラリ

Last updated at Posted at 2020-07-03

常に意識すること

  • 触れてきた技術について、深いところまで理解しているか

    • indexを貼ると早くなります。 ⇒ なぜ?
    • 過去触れてきた概念に関して浅い理解をしている人は、今後も浅い理解で仕事をすると考える。
  • 複雑な概念を理解して説明できるようにする

アルゴリズム

二分探索木 (深さ優先探索でL以上R以下を求める)

# 再帰関数
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:
        valid_vals = []
        def search(root):
            if root.val >= L and root.val<=R:
                valid_vals.append(root.val)
            if root.left:
                search(root.left)
            if root.right:
                search(root.right)
        search(root)
        return sum(valid_vals)

標準ライブラリ

進数変換

# 10進数を2,8,16進数に変換する
x = 10
print(bin(x))
print(oct(x))
print(hex(x))

# 2,8,16進数を10進数に変換する
print(int('10100', 2))
print(int('24', 8))
print(int('14', 16))

大文字・小文字

s_org = 'pYThon proGramminG laNguAge'
s_org.upper()
# PYTHON PROGRAMMING LANGUAGE
s_org.lower()
# python programming language

zipはfor文と一緒に使う

class Solution:
    def busyStudent(self, startTime: List[int], endTime: List[int], queryTime: int) -> int:
        cnt = 0
        for m, n in zip(startTime, endTime):
            if m <= queryTime and n >= queryTime:
                cnt += 1
        return cnt

リストの昇順・降順

l1 = ['d', 'b', 'c', 'a']
l2 = sorted(l1)
l2 = sorted(l1, reverse=True)
print(l2) # ['d', 'c', 'b', 'a']

リストが空か判定

a = []
if not a:
 print("リストは空です")

mathライブラリ

ceiling function (天井関数)

実数xに対してx以上の最小の整数を求める

from math import ceil
c = ceil(r)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0