"if decreasing arr, start from end and keep checking if next element increases by 1 or not. wherever not, put that value there."
Rishabh R. - "if decreasing arr, start from end and keep checking if next element increases by 1 or not. wherever not, put that value there."See full answer
"
This is mostly correct and fairly fast.
My code has a bug somewhere where it fails on cases like the last case, where there are negative number on both ends of the array and the sums .
from collections import deque
debug = True # False
def prdbg(*x):
global debug
debug = True # False
if debug:
print(x)
else:
return
def max_sum(arr, start, end):
if type(arr) == type('''
"
Nathan B. - "
This is mostly correct and fairly fast.
My code has a bug somewhere where it fails on cases like the last case, where there are negative number on both ends of the array and the sums .
from collections import deque
debug = True # False
def prdbg(*x):
global debug
debug = True # False
if debug:
print(x)
else:
return
def max_sum(arr, start, end):
if type(arr) == type('''
"See full answer
"ArrayList allows constant time access (O(1)) to elements using their index because it uses a dynamic array internally, whereas LinkedList requires traversal from the head node, resulting in linear time complexity (O(n))."
Aziz V. - "ArrayList allows constant time access (O(1)) to elements using their index because it uses a dynamic array internally, whereas LinkedList requires traversal from the head node, resulting in linear time complexity (O(n))."See full answer
"I'd translated this decimal number into binary form and if it looks like 1000 or 10 or 1 - one leading 1 and others are zeros - than return 1 else return 0
"
Анвар А. - "I'd translated this decimal number into binary form and if it looks like 1000 or 10 or 1 - one leading 1 and others are zeros - than return 1 else return 0
"See full answer
"function isPalindrome(s, start, end) {
while (s[start] === s[end] && end >= start) {
start++;
end--;
}
return end <= start;
}
function longestPalindromicSubstring(s) {
let longestPalindrome = '';
for (let i=0; i < s.length; i++) {
let j = s.length-1;
while (s[i] !== s[j] && i <= j) {
j--;
}
if (s[i] === s[j]) {
if (isPalindrome(s, i, j)) {
const validPalindrome = s.substring(i, j+1"
Tiago R. - "function isPalindrome(s, start, end) {
while (s[start] === s[end] && end >= start) {
start++;
end--;
}
return end <= start;
}
function longestPalindromicSubstring(s) {
let longestPalindrome = '';
for (let i=0; i < s.length; i++) {
let j = s.length-1;
while (s[i] !== s[j] && i <= j) {
j--;
}
if (s[i] === s[j]) {
if (isPalindrome(s, i, j)) {
const validPalindrome = s.substring(i, j+1"See full answer
"import java.util.*;
public class NetworkTopology {
public int topologytype(int N, int M, int[] input3, int[] input4) {
if (M != N - 1 && M != N) return -1; // Fast check for invalid cases
int[] degree = new int[N + 1]; // Degree of each node (1-based indexing)
// Build the degree array
for (int i = 0; i < M; i++) {
degree[input3[i]]++;
degree[input4[i]]++;
}
// Check for Bus Topology
boolean isBus = (M"
Alessandro R. - "import java.util.*;
public class NetworkTopology {
public int topologytype(int N, int M, int[] input3, int[] input4) {
if (M != N - 1 && M != N) return -1; // Fast check for invalid cases
int[] degree = new int[N + 1]; // Degree of each node (1-based indexing)
// Build the degree array
for (int i = 0; i < M; i++) {
degree[input3[i]]++;
degree[input4[i]]++;
}
// Check for Bus Topology
boolean isBus = (M"See full answer
"Make current as root.
2 while current is not null,
if p and q are less than current,
go left.
If p and q are greater than current,
go right.
else return current.
return null"
Vaibhav D. - "Make current as root.
2 while current is not null,
if p and q are less than current,
go left.
If p and q are greater than current,
go right.
else return current.
return null"See full answer
"Basic Approach
As BST inorder traversal will result in a sequence of increasing order. Store that order in a vector and get the k-1 index to get the Kth smallest element, similarly access the N-K+1 th element will be the Kth largest element
Time Complexity: O(n)
Space Complexity O(n)
Space Optimized Approach
For Kth smallest , start inorder traversal, and keep a counter, decrement the counter when you access the node element. When the counter turns 0 that elementwill be the Kth smal"
Saurabh S. - "Basic Approach
As BST inorder traversal will result in a sequence of increasing order. Store that order in a vector and get the k-1 index to get the Kth smallest element, similarly access the N-K+1 th element will be the Kth largest element
Time Complexity: O(n)
Space Complexity O(n)
Space Optimized Approach
For Kth smallest , start inorder traversal, and keep a counter, decrement the counter when you access the node element. When the counter turns 0 that elementwill be the Kth smal"See full answer
"int a_array[10] = {3,6,4,7,2,1,9};
int index = 0;
int index2 = 0;
for ( index = 0; index < sizeof(a_array); index++ )
{
int tmpindex = index + 1;
if ( tmpindex <= sizeof(a_array) )
{
for ( index2 = tmpindex; index2 < sizeof(a_array); index2++ )
{
if ( aarray[index] <= aarray[index2] )
{
print( "%d is the NGE of %d" array[index2], array[index]);
break;
"
Mark S. - "int a_array[10] = {3,6,4,7,2,1,9};
int index = 0;
int index2 = 0;
for ( index = 0; index < sizeof(a_array); index++ )
{
int tmpindex = index + 1;
if ( tmpindex <= sizeof(a_array) )
{
for ( index2 = tmpindex; index2 < sizeof(a_array); index2++ )
{
if ( aarray[index] <= aarray[index2] )
{
print( "%d is the NGE of %d" array[index2], array[index]);
break;
"See full answer