File tree Expand file tree Collapse file tree 7 files changed +53
-28
lines changed
src/main/kotlin/g3501_3600
s3556_sum_of_largest_prime_substrings
s3558_number_of_ways_to_assign_edge_weights_i
s3559_number_of_ways_to_assign_edge_weights_ii
s3560_find_minimum_log_transportation_cost
s3561_resulting_string_after_adjacent_removals
s3562_maximum_profit_from_trading_stocks_with_discounts
s3563_lexicographically_smallest_string_after_adjacent_removals Expand file tree Collapse file tree 7 files changed +53
-28
lines changed Original file line number Diff line number Diff line change 11package g3501_3600.s3556_sum_of_largest_prime_substrings
22
3- // #Medium #2025_05_25_Time_25_ms_(100.00%)_Space_43.67_MB_(100.00%)
3+ // #Medium #String #Hash_Table #Math #Sorting #Number_Theory
4+ // #2025_05_25_Time_25_ms_(100.00%)_Space_43.67_MB_(100.00%)
45
56class Solution {
67 fun sumOfLargestPrimes (s : String ): Long {
7- val primeSet : MutableSet <Long > = HashSet < Long > ()
8+ val set : MutableSet <Long > = HashSet ()
89 val n = s.length
10+ var first: Long = - 1
11+ var second: Long = - 1
12+ var third: Long = - 1
913 for (i in 0 .. < n) {
10- var temp : Long = 0
14+ var num : Long = 0
1115 for (j in i.. < n) {
12- temp = temp * 10 + (s[j].code - ' 0' .code)
13- if (isPrime(temp)) {
14- primeSet.add(temp)
16+ num = num * 10 + (s[j].code - ' 0' .code)
17+ if (i != j && s[i] == ' 0' ) {
18+ break
19+ }
20+ if (isPrime(num) && ! set.contains(num)) {
21+ set.add(num)
22+ if (num > first) {
23+ third = second
24+ second = first
25+ first = num
26+ } else if (num > second) {
27+ third = second
28+ second = num
29+ } else if (num > third) {
30+ third = num
31+ }
1532 }
1633 }
1734 }
18- val primes : MutableList < Long > = ArrayList < Long >(primeSet)
19- primes.sort()
20- val m = primes.size
21- if (m < 3 ) {
22- var sum : Long = 0
23- for (p in primes) {
24- sum + = p
25- }
26- return sum
35+ var sum : Long = 0
36+ if (first != - 1L ) {
37+ sum + = first
38+ }
39+ if (second != - 1L ) {
40+ sum + = second
41+ }
42+ if (third != - 1L ) {
43+ sum + = third
2744 }
28- return primes[m - 1 ] + primes[m - 2 ] + primes[m - 3 ]
45+ return sum
2946 }
3047
31- private fun isPrime (n : Long ): Boolean {
32- if (n < 2 ) {
48+ fun isPrime (num : Long ): Boolean {
49+ if (num <= 1 ) {
50+ return false
51+ }
52+ if (num == 2L || num == 3L ) {
53+ return true
54+ }
55+ if (num % 2 == 0L || num % 3 == 0L ) {
3356 return false
3457 }
35- var i: Long = 2
36- while (i * i <= n ) {
37- if (n % i == 0L ) {
58+ var i: Long = 5
59+ while (i * i <= num ) {
60+ if (num % i == 0L || num % (i + 2 ) == 0L ) {
3861 return false
3962 }
40- ++ i
63+ i + = 6
4164 }
4265 return true
4366 }
Original file line number Diff line number Diff line change 11package g3501_3600.s3558_number_of_ways_to_assign_edge_weights_i
22
3- // #Medium #2025_05_25_Time_160_ms_ (100.00%)_Space_149.66_MB_(100.00 %)
3+ // #Medium #Math #Depth_First_Search #Tree #2025_05_27_Time_21_ms_ (100.00%)_Space_135.14_MB_(45.45 %)
44
55class Solution {
66 fun assignEdgeWeights (edges : Array <IntArray >): Int {
Original file line number Diff line number Diff line change 11package g3501_3600.s3559_number_of_ways_to_assign_edge_weights_ii
22
3- // #Hard #2025_05_25_Time_197_ms_(100.00%)_Space_158.27_MB_(100.00%)
3+ // #Hard #Array #Dynamic_Programming #Math #Depth_First_Search #Tree
4+ // #2025_05_25_Time_197_ms_(100.00%)_Space_158.27_MB_(100.00%)
45
56import kotlin.math.ceil
67import kotlin.math.ln
Original file line number Diff line number Diff line change 11package g3501_3600.s3560_find_minimum_log_transportation_cost
22
3- // #Easy #2025_05_25_Time_0_ms_(100.00%)_Space_40.46_MB_(100.00%)
3+ // #Easy #Math # 2025_05_25_Time_0_ms_(100.00%)_Space_40.46_MB_(100.00%)
44
55class Solution {
66 fun minCuttingCost (n : Int , m : Int , k : Int ): Long {
Original file line number Diff line number Diff line change 11package g3501_3600.s3561_resulting_string_after_adjacent_removals
22
3- // #Medium #2025_05_25_Time_43_ms_(100.00%)_Space_50.83_MB_(68.75%)
3+ // #Medium #String #Stack #Simulation # 2025_05_25_Time_43_ms_(100.00%)_Space_50.83_MB_(68.75%)
44
55class Solution {
66 fun resultingString (s : String ): String {
Original file line number Diff line number Diff line change 11package g3501_3600.s3562_maximum_profit_from_trading_stocks_with_discounts
22
3- // #Hard #2025_05_25_Time_40_ms_(100.00%)_Space_49.77_MB_(100.00%)
3+ // #Hard #Array #Dynamic_Programming #Depth_First_Search #Tree
4+ // #2025_05_25_Time_40_ms_(100.00%)_Space_49.77_MB_(100.00%)
45
56import kotlin.math.max
67
Original file line number Diff line number Diff line change 11package g3501_3600.s3563_lexicographically_smallest_string_after_adjacent_removals
22
3- // #Hard #2025_05_25_Time_186_ms_(100.00%)_Space_49.04_MB_(100.00%)
3+ // #Hard #String #Dynamic_Programming # 2025_05_25_Time_186_ms_(100.00%)_Space_49.04_MB_(100.00%)
44
55import kotlin.math.abs
66
You can’t perform that action at this time.
0 commit comments