Skip to content

Commit cd22899

Browse files
committed
Some updates
1 parent c5d61c1 commit cd22899

7 files changed

Lines changed: 163 additions & 2 deletions

File tree

.idea/csv-editor.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/dataSources.xml

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/sqldialects.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/java/org/dojo/algorithms/HashTables.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,13 @@ public int[] twoSum(int[] nums, int target) {
2222
}
2323
return new int[] {};
2424
}
25+
26+
public int[] twoSumAlt(int[] nums, int target) {
27+
Map<Integer, Integer> lookbehind = new HashMap<>();
28+
for (int i = 0; i < nums.length; i++) {
29+
if (lookbehind.containsKey(target - nums[i])) return new int[] {lookbehind.get(target - nums[i]), i};
30+
lookbehind.put(nums[i], i);
31+
}
32+
return new int[] {};
33+
}
2534
}

src/main/java/org/dojo/algorithms/LinkedListProblems.java

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,14 +195,40 @@ public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
195195

196196
public boolean hasCycle(ListNode head) {
197197
ListNode slow = head, fast = head;
198-
while(fast != null && fast.next != null) {
198+
while (fast != null && fast.next != null) {
199199
slow = slow.next;
200200
fast = fast.next.next;
201201
if (slow == fast) return true;
202202
}
203203
return false;
204204
}
205205

206+
public ListNode getNodeIfHasCycle(ListNode head) {
207+
ListNode slow = head, fast = head;
208+
while (fast != null && fast.next != null) {
209+
slow = slow.next;
210+
fast = fast.next.next;
211+
if (slow == fast) return fast;
212+
}
213+
return null;
214+
}
215+
216+
public ListNode detectCycle(ListNode head) {
217+
if (head == null) return null;
218+
ListNode fast = getNodeIfHasCycle(head);
219+
if (fast == null) return null;
220+
221+
ListNode slow = head;
222+
ListNode prev = fast;
223+
while (slow != fast) {
224+
prev = fast;
225+
slow = slow.next;
226+
fast = fast.next;
227+
}
228+
prev.next = null;
229+
return slow;
230+
}
231+
206232
public ListNode reverseKGroup(ListNode head, int k) {
207233
ListNode dummy = null;
208234
ListNode next;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package org.dojo.algorithms;
2+
3+
public class TreeProblems {
4+
}

src/main/resources/f1db.pg.sql

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
select id, engine_manufacturer_id as manufacturer, name, full_name, capacity, configuration, aspiration
2+
from engine e;
3+
4+
select id,
5+
name,
6+
full_name,
7+
country_id,
8+
best_championship_position,
9+
best_starting_grid_position,
10+
best_race_result,
11+
total_championship_wins,
12+
total_race_entries,
13+
total_race_starts,
14+
total_race_wins,
15+
total_1_and_2_finishes,
16+
total_race_laps,
17+
total_podiums,
18+
total_podium_races,
19+
total_points,
20+
total_championship_points,
21+
total_pole_positions,
22+
total_fastest_laps
23+
from constructor c;
24+
25+
26+
select race_id,
27+
type,
28+
position_display_order,
29+
position_number,
30+
position_text,
31+
driver_number,
32+
driver_id,
33+
constructor_id,
34+
engine_manufacturer_id,
35+
tyre_manufacturer_id,
36+
practice_time,
37+
practice_time_millis,
38+
practice_gap,
39+
practice_gap_millis,
40+
practice_interval,
41+
practice_interval_millis,
42+
practice_laps,
43+
qualifying_time,
44+
qualifying_time_millis,
45+
qualifying_q1,
46+
qualifying_q1_millis,
47+
qualifying_q2,
48+
qualifying_q2_millis,
49+
qualifying_q3,
50+
qualifying_q3_millis,
51+
qualifying_gap,
52+
qualifying_gap_millis,
53+
qualifying_interval,
54+
qualifying_interval_millis,
55+
qualifying_laps,
56+
starting_grid_position_qualification_position_number,
57+
starting_grid_position_qualification_position_text,
58+
starting_grid_position_grid_penalty,
59+
starting_grid_position_grid_penalty_positions,
60+
starting_grid_position_time,
61+
starting_grid_position_time_millis,
62+
race_shared_car,
63+
race_laps,
64+
race_time,
65+
race_time_millis,
66+
race_time_penalty,
67+
race_time_penalty_millis,
68+
race_gap,
69+
race_gap_millis,
70+
race_gap_laps,
71+
race_interval,
72+
race_interval_millis,
73+
race_reason_retired,
74+
race_points,
75+
race_pole_position,
76+
race_qualification_position_number,
77+
race_qualification_position_text,
78+
race_grid_position_number,
79+
race_grid_position_text,
80+
race_positions_gained,
81+
race_pit_stops,
82+
race_fastest_lap,
83+
race_driver_of_the_day,
84+
race_grand_slam,
85+
fastest_lap_lap,
86+
fastest_lap_time,
87+
fastest_lap_time_millis,
88+
fastest_lap_gap,
89+
fastest_lap_gap_millis,
90+
fastest_lap_interval,
91+
fastest_lap_interval_millis,
92+
pit_stop_stop,
93+
pit_stop_lap,
94+
pit_stop_time,
95+
pit_stop_time_millis,
96+
driver_of_the_day_percentage
97+
from race_data
98+
order by race_id
99+
offset 10 fetch next 20 rows only;

0 commit comments

Comments
 (0)