software engineer interview questions shared by candidates
you have array with n elements. How would you do circular shift of k positions? Time and space complexity?
Make a circular linklist, and move headpointer K position to do K shifts. It's O(n) time complexity. Space is contant. (circular link list).
Well, space isn't constant because you took an array and then copied it somehow to a linked list. Remember, you were given an array? If I understand the question correctly, they're asking to do a circular shift of some range of values, like the first k values in an array of length n? So if you wanted to shift right, temp = array[k] from index=k to 1 array[index] = array[index-1] array = temp this would be O(k)? I mean, it would take k steps, but maybe it's somehow still O(n)
oh, sorry, I misunderstood. Not k values, move everything k positions. Praveen Chettypally's answer works but the space complexity would be O(n) since there is a fully copy of the list? The simplest would probably be to make another array and copy in, starting at the (n-k)th element, going to the end, then starting at the beginning. A second array would probably be a better option than a completely different data structure. What if it has to be done in place? is there an O(n) solution?
You have 50 balls, half white and half black. You have to put all the balls in two boxes and then I choose one ball from any of the boxes without seeing. If I choose a black ball I win, if I choose a white one you win. How would you distribute the balls in the boxes in such way that you have more odds to win.
See Interview Questions for Similar Jobs
- Senior Software Engineer
- Software Developer
- Software Development Engineer
- Business Analyst
- Technical Support Engineer
- Product Manager
- Principal Software Engineer
- QA Engineer
- Senior Software Developer