Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungRate Limiting: The Traffic Cop Your API Needs(20.09.2026 um 14:51 Uhr)
Sichere ProgrammierungI Built the MVP First. Then I Wrote the README.(20.09.2026 um 14:51 Uhr)
Sichere ProgrammierungHow to add a loading screen with a progress bar in Godot 4(20.09.2026 um 14:52 Uhr)
Sichere ProgrammierungCanada is about to break your scheduler(20.09.2026 um 14:59 Uhr)
Sichere ProgrammierungWhat Does an AI Automation Agency Actually Do?(20.09.2026 um 15:00 Uhr)
Sichere ProgrammierungRate Limiting: The Traffic Cop Your API Needs(20.09.2026 um 14:51 Uhr)
Sichere ProgrammierungI Built the MVP First. Then I Wrote the README.(20.09.2026 um 14:51 Uhr)
Sichere ProgrammierungHow to add a loading screen with a progress bar in Godot 4(20.09.2026 um 14:52 Uhr)
Sichere ProgrammierungCanada is about to break your scheduler(20.09.2026 um 14:59 Uhr)
Sichere ProgrammierungWhat Does an AI Automation Agency Actually Do?(20.09.2026 um 15:00 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

Ruby DSA Cheat Sheet

Reagiere als Erste:r — dein Feedback zählt!

Ruby DSA Cheat Sheet

A comprehensive guide to data structures and algorithms in Ruby. Includes examples, time/space complexities, and usage patterns.

📑 Table of Contents

  • 1. Arrays
  • 2. Hashes / Dictionaries
  • 3. Strings
  • 4. Linked Lists
  • 5. Stacks & Queues
  • 6. Heaps / Priority Queue
  • 7. Trees
  • 8. Graphs
  • 9. Common Algorithms
    • Recursion / Backtracking
    • Dynamic Programming
    • Sliding Window
    • Two Pointers
  • 10. Complexity Cheats

1. Arrays

Creation

arr = []          # empty array
arr = [1, 2, 3]   # initialized array

Common Operations

arr.push(4)        # add to end
arr.pop            # remove from end
arr.unshift(0)     # add to start
arr.shift          # remove from start
arr.include?(2)    # check if exists
arr.index(3)       # get index of first occurrence
arr.uniq           # remove duplicates
arr.sort           # sort array
arr.reverse        # reverse array
arr.sum            # sum of elements

Iteration

arr.each { |x| puts x }
arr.map { |x| x * 2 }          # returns new array
arr.select { |x| x > 2 }       # filter
arr.reject { |x| x > 2 }       # opposite of select
arr.reduce(0) { |sum, x| sum + x }  # fold/reduce

Time Complexity

Operation Average Worst
Access O(1) O(1)
Append/Push O(1) O(n)
Prepend/Unshift O(n) O(n)
Delete by index O(n) O(n)
Search O(n) O(n)

2. Hashes / Dictionaries

Creation

h = {}                   # empty hash
h = { a: 1, b: 2 }       # initialized
h = Hash.new(0)           # default value

Common Operations

h[:c] = 3                 # add/update
h.delete(:a)              # delete key
h.key?(:b)                # check existence
h.values                  # array of values
h.keys                    # array of keys
h.each { |k,v| puts "#{k}: #{v}" }

Use Cases

  • Frequency counting
  • Lookup tables
  • Memoization

Time Complexity

Operation Average Worst
Access O(1) O(n)
Insert O(1) O(n)
Delete O(1) O(n)
Search O(1) O(n)

3. Strings

Basics

s = "hello"
s.length          # 5
s[0]              # 'h'
s[0..2]           # 'hel'
s.chars           # ['h','e','l','l','o']
s.split           # ["hello"]
s.include?("ll")  # true

Operations

s.gsub("h","H")      # replace
s.reverse            # reverse
s.count("l")         # count occurrences
s.start_with?("he")  # check prefix
s.end_with?("lo")    # check suffix
s << " world"        # append (mutable)

Iteration

s.each_char { |c| puts c }
s.chars.map(&:upcase)   # ['H','E','L','L','O']

4. Linked Lists

Node Class Example

class Node
  attr_accessor :val, :next
  def initialize(val)
    @val = val
    @next = nil
  end
end

Operations

  • Insert at head/tail
  • Delete node
  • Traverse
  • Reverse

Time Complexity

Operation Singly Doubly
Insert O(1) O(1)
Delete O(n) O(1)
Search O(n) O(n)

5. Stacks & Queues

Stack (LIFO)

stack = []
stack.push(1)   # push
stack.pop       # pop
stack.last      # peek

Queue (FIFO)

queue = []
queue.push(1)   # enqueue
queue.shift     # dequeue
queue.first     # peek

Time Complexity

  • Stack push/pop: O(1)
  • Queue enqueue/dequeue: O(1) with proper deque, O(n) if using Array for shift

6. Heaps / Priority Queue

  • Ruby: Use priority_queue gem or implement manually.
  • Operations:
    • Insert: O(log n)
    • Extract Min/Max: O(log n)
    • Peek: O(1)
  • Use Cases: Top-K, Dijkstra, scheduling

7. Trees

Binary Tree Node

class TreeNode
  attr_accessor :val, :left, :right
  def initialize(val)
    @val = val
    @left = nil
    @right = nil
  end
end

Traversals

# Inorder traversal
def inorder(root)
  return if root.nil?
  inorder(root.left)
  print root.val
  inorder(root.right)
end

Binary Search Tree (BST) Complexity

Operation Avg Worst
Insert O(log n) O(n)
Search O(log n) O(n)
Delete O(log n) O(n)

Other Trees

  • AVL, Red-Black, Segment Tree, Trie

8. Graphs

Representation

graph = {
  0 => [1,2],
  1 => [0,3],
  2 => [0],
  3 => [1]
}

Traversals

  • BFS (Queue)
  • DFS (Stack / Recursion)

Common Algorithms

  • Dijkstra, Bellman-Ford, Floyd-Warshall
  • Kruskal, Prim

Complexity

  • BFS/DFS: O(V + E)

9. Common Algorithms

Recursion / Backtracking

# Factorial (Recursive)
def factorial(n)
  return 1 if n <= 1
  n * factorial(n - 1)
end

# Fibonacci (Recursive)
def fib(n)
  return n if n <= 1
  fib(n - 1) + fib(n - 2)
end

# Permutations (Backtracking)
def permute(arr)
  return [arr] if arr.length <= 1
  result = []
  arr.each_with_index do |el, i|
    rest = arr[0...i] + arr[i+1..-1]
    permute(rest).each { |p| result << [el] + p }
  end
  result
end

# Subsets (Backtracking / Recursion)
def subsets(arr)
  return [[]] if arr.empty?
  first = arr[0]
  rest_subsets = subsets(arr[1..-1])
  rest_subsets + rest_subsets.map { |s| [first] + s }
end

# Combinations (n choose k)
def combinations(arr, k)
  return [[]] if k == 0
  return [] if arr.empty?
  first, *rest = arr
  with_first = combinations(rest, k - 1).map { |c| [first] + c }
  without_first = combinations(rest, k)
  with_first + without_first
end

Dynamic Programming

# Memoization (Top-Down)
def fib_memo(n, memo = {})
  return n if n <= 1
  memo[n] ||= fib_memo(n - 1, memo) + fib_memo(n - 2, memo)
end

# Tabulation (Bottom-Up)
def fib_tab(n)
  return n if n <= 1
  dp = Array.new(n+1)
  dp[0], dp[1] = 0, 1
  (2..n).each { |i| dp[i] = dp[i-1] + dp[i-2] }
  dp[n]
end

Sliding Window

# Maximum Sum Subarray (Size k)
def max_subarray_sum(arr, k)
  return nil if arr.size < k
  max_sum = arr[0...k].sum
  current_sum = max_sum
  (k...arr.size).each do |i|
    current_sum += arr[i] - arr[i - k]
    max_sum = [max_sum, current_sum].max
  end
  max_sum
end

# Minimum Length Subarray (Sum ≥ target)
def min_subarray_len(arr, target)
  left = 0
  sum = 0
  min_len = Float::INFINITY
  arr.each_with_index do |num, right|
    sum += num
    while sum >= target
      min_len = [min_len, right - left + 1].min
      sum -= arr[left]
      left += 1
    end
  end
  min_len == Float::INFINITY ? 0 : min_len
end

# Length of Longest Substring Without Repeating Characters
def length_of_longest_substring(s)
  seen = {}
  left = 0
  max_len = 0
  s.chars.each_with_index do |c, right|
    if seen.key?(c) && seen[c] >= left
      left = seen[c] + 1
    end
    seen[c] = right
    max_len = [max_len, right - left + 1].max
  end
  max_len
end

Two Pointers

# Two Sum on Sorted Array
def two_sum_sorted(arr, target)
  left, right = 0, arr.length - 1
  while left < right
    sum = arr[left] + arr[right]
    return [left, right] if sum == target
    sum < target ? left += 1 : right -= 1
  end
  nil
end

# Palindrome Check
def palindrome?(s)
  left, right = 0, s.length - 1
  while left < right
    return false if s[left] != s[right]
    left += 1
    right -= 1
  end
  true
end

10. Complexity Cheats

Structure / Operation Avg Time Worst Time Space
Array Access O(1) O(1) O(n)
Array Search O(n) O(n) O(1)
Hash Lookup O(1) O(n) O(n)
Stack/Queue O(1) O(1) O(n)
BST Lookup O(log n) O(n) O(n)
Heap Insert/Extract O(log n) O(log n) O(n)
Graph Traversal BFS/DFS O(V+E) O(V+E) O(V)
Sorting O(n log n) O(n log n) O(n)

This cheat sheet covers Ruby-specific methods, common data structures, algorithm patterns, and their complexities for thorough DSA prep.

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Ruby DSA Cheat Sheet

Thematisch verwandte Begriffe: Ruby, Cheat, Sheet · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-93956 | A flaw has been found in olivier-ls PHP-FTS up to 1.1.2. Affected by thi…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick