tag:blogger.com,1999:blog-6246806974730883629.post5187479228020365764..comments2014-12-07T16:56:50.522+00:00Comments on KnowledgeZen Technology Consulting http://knowledgezen.appspot.com: Programming Puzzle to solve Anonymoushttp://www.blogger.com/profile/09877906733076339191noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-6246806974730883629.post-51090342593209658362014-12-07T16:56:50.522+00:002014-12-07T16:56:50.522+00:00import java.util.ArrayList;
import java.util.HashM...import java.util.ArrayList;<br />import java.util.HashMap;<br />import java.util.List;<br /><br /><br />public class RopeQuestion {<br /><br /> public static void main(String[] args) {<br /><br /> int A[] = {5,3,6,3,3};<br /> int B[] = {2,3,1,1,2};<br /> int C[] = {-1,0,-1,0,3};<br /> System.out.println((new RopeQuestion().solution(A, B, C)));<br /> }<br /> <br /> class RopeNode{<br /> List childNodes =new ArrayList();<br /> RopeNode parentNode;<br /> int strength;<br /> int value;<br /> int total;<br /> RopeNode weakestRopeNode;<br /> }<br /> <br /> public int solution(int[] A, int[] B, int[] C) {<br /><br /> if(A == null || B== null || C== null || A.length==0 || B.length==0 || C.length == 0){<br /> return 0;<br /> }<br /> <br /> int abMin = Math.min(A.length, B.length);<br /> int min = Math.min(abMin, C.length);<br /> if(C[0] != -1){<br /> return 0;<br /> }<br /> HashMap ropeNodesMap = new HashMap(); <br /> for (int order = 0; order < A.length && order < min; order++) {<br /> RopeNode ropeNode = new RopeNode();<br /> ropeNodesMap.put(order, ropeNode);<br /> ropeNode.value = B[order];<br /> ropeNode.strength = A[order];<br /> ropeNode.total = B[order];<br /> if(ropeNode.value > ropeNode.strength){<br /> return ropeNodesMap.size() - 1;<br /> }<br /> if(C[order] != -1){<br /> RopeNode parentNode = ropeNodesMap.get(C[order]);<br /> if(parentNode == null) {<br /> return ropeNodesMap.size() - 1;<br /> }<br /> ropeNode.parentNode = parentNode;<br /> parentNode.childNodes.add(ropeNode);<br /> <br />// if((parentNode.weakestRopeNode.strength - (parentNode.weakestRopeNode.total + ropeNode.value) >= 0)){<br />// if((ropeNode.strength-ropeNode.total) < (parentNode.weakestRopeNode.strength - (parentNode.weakestRopeNode.total + ropeNode.value))){<br />// ropeNode.weakestRopeNode = ropeNode;<br />// parentNode.weakestRopeNode.total += ropeNode.value; <br />// }else{<br />// ropeNode.weakestRopeNode = parentNode.weakestRopeNode;<br />// ropeNode.weakestRopeNode.total += ropeNode.value;<br />// }<br />// }else{<br />// return ropeNodesMap.size() - 1; <br />// }<br /> <br /> parentNode = ropeNode;<br /> while((parentNode = parentNode.parentNode) != null){<br /> parentNode.total += ropeNode.value;<br /> if(parentNode.total > parentNode.strength){<br /> return ropeNodesMap.size() - 1; <br /> }<br /> }<br /> }else{<br /> ropeNode.weakestRopeNode = ropeNode;<br /> }<br /> }<br /> return ropeNodesMap.size();<br /> }<br /> <br />}<br />fatih tekinhttps://www.blogger.com/profile/01260318491768365949noreply@blogger.comtag:blogger.com,1999:blog-6246806974730883629.post-55968821922354452082014-10-09T19:28:08.664+01:002014-10-09T19:28:08.664+01:00Can't we add
A[3] = 3 B[3] = 1 C[3] = ...Can't we add<br /><br /> A[3] = 3 B[3] = 1 C[3] = 0<br /><br />node right after node 1 i.e in right sub tree instead of left sub-tree ?<br />If ad it in right sub-tree durability will remain under control i.e. (1+1 <6)Parkashnoreply@blogger.com