Deloitte | COGNIZANT | IBM | CAPGEMINI
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
VIRTUSA exam cleared ✅✅
Got communication round mail 💯
Proofs :
https://t.me/python_java_Coding/8812?single
Contact : @MLCODER2
1.9K · عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
Deloitte | COGNIZANT | IBM | CAPGEMINI
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
VIRTUSA EXAM ON-CAMPUS DONE & DUSTED✅✅
Contact : @MLCODER2
9 · 2.7K · Deloitte | COGNIZANT | IBM | CAPGEMINI
import java.util.*;
public class TestClass {
static class Edge {
int to, cost;
Edge(int to, int cost) {
this.to = to;
this.cost = cost;
}
}
static List<List<Edge>> graph;
static List<Integer> bestPath = new ArrayList<>();
static int maxVisitLength = 0;
public static void optimalPath(int N, int M, int price, int[] source, int[] dest, int[] weight) {
graph = new ArrayList<>();
for (int i = 0; i <= N; i++) graph.add(new ArrayList<>());
for (int i = 0; i < M; i++) {
int u = source[i];
int v = dest[i];
int w = weight[i];
graph.get(u).add(new Edge(v, w));
graph.get(v).add(new Edge(u, w));
}
boolean[] visited = new boolean[N + 1];
List<Integer> path = new ArrayList<>();
path.add(1);
visited[1] = true;
dfs(1, price, 0, visited, path);
for (int val : bestPath) {
System.out.print(val + " ");
}
}
static void dfs(int node, int budget, int costSoFar, boolean[] visited, List<Integer> path) {
int returnCost = costSoFar;
if (2 * returnCost <= budget) {
if (path.size() > maxVisitLength) {
maxVisitLength = path.size();
bestPath = new ArrayList<>(path);
for (int i = path.size() - 2; i >= 0; i--) {
bestPath.add(path.get(i));
}
}
} else {
return;
}
for (Edge edge : graph.get(node)) {
if (!visited[edge.to]) {
int newCost = costSoFar + edge.cost;
if (2 * newCost <= budget) {
visited[edge.to] = true;
path.add(edge.to);
dfs(edge.to, budget, newCost, visited, path);
path.remove(path.size() - 1);
visited[edge.to] = false;
}
6 · 2.3K ·