abhimanipal
BAN USERI am currently doing my Masters in Computer Science at SUNY- Buffalo. I have gpa of 3.68. Most of my development experience is in C/C++.
Check out my resume for more details on my research/ projects
Abhishek Agrawal
77, Merrimac Street,
Buffalo, NY 14221
aa225@buffalo.edu
(716) 435-7122
OBJECTIVE
Seeking a position in an organization that would allow me to utilize my skills to the maximum.
EDUCATION
University at Buffalo, The State University of New York Masters of Science, Computer Science and Engineering • Current CGPA 3.68/4.0
RESEARCH EXPERIENCE
Modified Priority Scheduler for Improved Performance NSF Funded
• We attempt to improve upon the resource utilization for clusters by designing better scheduling algorithms. The parameter we wish to optimize is the slowdown experienced by each job. • Made my own job simulator to compare my scheduling algorithm with the competition. The workload was taken from the parallel workloads archive. Code was written in Java. .
• Presented a research poster on this topic in IEEE Cluster 2009 conference.
Efficient Traversal of an Area using Wireless Sensor Nodes Masters Project
• Area traversal/ coverage is a fundamental application for Wireless Sensor Nodes. We developed 2 new algorithms in this area. • The first algorithm ensured quick coverage of the area and at a reasonable energy cost. The second algorithm covered the area efficiently even if there were holes in it, which was impossible previously.
• Language used was C. Got full credit for this project
SKILLS Programming Languages: C/ C++, Java
Parallel Programming/ Multi threaded programming Hadoop File System, HBase, Hive, Hama
Network Simulators: Glomosim, NS2 Other Technologies: Perl, Tcl, SQl, Microsoft Office Products Internet Technologies: HTML,JSP,ASP Operating Systems: Windows XP, Vista, FreeBSD, Unix, Linux
PROJECTS
A Compiler for C++ Language
• Implemented a compiler, which could compile instructions like data declaration, if else, for/ while loops in C++
• Language used was C++. Operating System was Windows. Secured an A for this project.
Created Containers for exchange of data between processes • A scheme for the processes in the kernel to exchange data. 5 system calls added to the kernel to facilitate this.
• Extensive usage of data structure locking, dynamic memory usage, sleep/wake mechanism in the kernel.
• Language used in C. Operating system used is FreeBSD. Secured full credit for this project.
File System using Inet Domain Sockets
• Designed a distributed file system using Inet Domain Sockets. The file system was capable of performing basic operations like File Create, File Read, File Write, File Append, File List, etc. Storage of files was persistent. • Language used was C. Operating System was Linux. Secured full credit for this project.
RCP- A new Transport Layer Protocol for TCP/IP stack
• RCP is a clone of TCP- Tahoe but the congestion control is completely handled by the receiver. Implement this protocol and compared its performance with TCP- Tahoe.
• Implementation was in NS2. Languages used were C++, Tcl. Operating System was Solaris.
Implementation of Markowitz model using Hadoop
• Simulating the Markowitz model on Hadoop. The co variance matrix and expected returns matrix is computed in parallel. Currently trying to simulate SVD decomposition on Hadoop to calculate the inverse of a matrix. Will compare the performance with traditional databases.
• Hadoop/HBase is used for data storage. Used Hama for matrix multiplication. Code was written in Java.
Mac Layer Protocol for TCP/IP stack
• Developed a MAC layer protocol for an ad hoc network. There are 99 senders and each sends b copies of data in every time unit. Receiver cannot sense the medium. The value of b which maximizes data transfer is found.
• Implementation was in Glomosim. Language used was C. Operating System was Solaris.
Portable Indoor Air Quality Sensor for Asthma Patients • Designed a sensor for use by Asthma patients. The sensor warned the patient if the air in the room could trigger an asthma attack. The sensor could be calibrated according to the needs of the individual. • Wrote the system specification document, the SRS document, the project plan, designed test cases for this
project.
ACHIEVEMENTS
• NSF grant for conducting research on scheduling in Clusters.
• Active contributor on DaniWeb C and C++ communities. username- abhimanipal
• Annual Scholarship for 4 years from Bharat Petroleum for outstanding performance in school.
• Treasurer of Leo Club- Youth Wing of Lions International, India
I think BST is implied....
Are there any advantages of a binary tree ?
Also all the solutions presented above discount the possibility that the value in the temp variable could over flow
- abhimanipal April 11, 2010In the second scenario A has to cover 110 metres and B has to cover 100 metres only.
So by using simple arithmetic :
when A covers 100m --- B covers 90 m
when A covers 109.99m ---- B covers x m
If this x is greater than 100 then B wins other wise A wins
The disadvantage of using hashing is that it takes up lot of space as opposed to say linked lists
- abhimanipal April 09, 2010Hash table is definitely not space efficient. If the range of the input numbers is from 0-2^31 but there are just 5 numbers in the input then that is the size of the hash table will still be 0- 2^31
- abhimanipal April 09, 2010Can we use the principles of external merge sort here ?
- abhimanipal April 09, 2010Hash map, hash function should be based on the ascii value of the character ....
After passing through the entire string, iterate thru the table to find the first non repeating character
Was this actually asked in an interview ?
Hamming sequence ??
I think pre order makes too many assumptions ... I would go for the DFS method
- abhimanipal April 09, 2010Your solution has space complexity of O(n) not O(1)
This is because, after the inorder traversal, you pick nodes one by one and create a new tree.
When you create the new tree, you have not deleted the old tree
Maybe this was an introduction question ... Kind of like an ice breaker :)
- abhimanipal April 09, 2010Is this your algorithm ?
1. Reverse the list
2. Print the list in this order
3. Reverse the list again ?
Make 2 arrays , array1 is initialized to 100 ie each digit of 100 is stored in different locations of array1.
Array2 in initialized to 99 ie each digit of 99 is stored in different location of array2
now multiply each digit of array1 with each digit of array2. This multiplication is identical to the multiplication that we were taught in school. Time complexity of this type of multiplication is O(n2)
As there are no constraints on space, a possible solution could be to use a heap for determining the min/ max extry ...
- abhimanipal April 09, 2010Why do you even need a single hash map... As we move through the original list, node by node, simultaneously create the second list as well.
Then connect the random pointers as well
What do you think ?
Quick question, when we create the duplicate list does it need to have the pointer to the random node as well ?
- abhimanipal April 09, 2010The insertion number will always increase and I am asuuming you are creating the BST on the basis of the insertion number. So you will end up with a Linked List and not a BST..
- abhimanipal April 08, 2010My OOPS concepts are not very strong as I am mainly a C person, but would the following be in correct ?
class user
{
private:
int id;
static int next_id;
};
int user::next_id = 0;
But the more interesting question is ..What if we want to initialize non static members ?
Instead of writing so much code, why dont you just describe your logic ?
It will be of lot more help to all the people ?
Can some one explain why statements 1,2,3 are false ?
I understand the reasoning for statement 5 but I am unable to extend the logic for statements 1,2,3
Can you explain the method to find the largest rectangle across the mid line ?
- abhimanipal April 08, 2010See the method of finding the common ancestor is common. After that you could run pre order traversal on the common ancestor....
I think this method could work for many cases ??
I think finding out the names of the customers between 2 dates will be pretty tough with a trie ....
- abhimanipal April 08, 2010Also what are the initial values of the bit masks
- abhimanipal April 08, 2010The question explicitly states that this is not a BST
- abhimanipal April 08, 2010The given input string is FOOPARFOO.... We use hash table to solve the problem ..
First we hash 'FO' then 'OO' then 'OP' then 'PA' and so on. At some point when we try to hash ' FO' we see that the entry for 'FO' already exists at that point we conclude that a duplicate has been found
Time complexity is O(n) and space complexity is O(n)
My bad... I assumed that input was BST
- abhimanipal April 08, 2010I have a doubt in the question... The given tree is a BST... So if omit any 1 node... The BST still remains a BST. Why cant we return this tree as the solution. It is definitely a BST and it does contain the largest number of nodes
- abhimanipal April 08, 2010Assume that tree is a binary tree
Take one of the nodes and do Pre order traversal, if you hit the second node, then node 1 an ancestor of the node 2. If not start from node 2 and do pre order traversal. If you hit node 1 then node 2 is an ancestor of node 2
This logic can be extended to non binary trees as well, we just have to modify the algorithm for pre order tree traversal
I like your solution... In fact it is the best of all the other proposed solutions ....
But I am not sure if it will work on all kinds of inputs ...
Have you checked your algo for varied inputs ???
Continuation of the above answer could be....
The connection initially goes to some cache hosted by Yahoo. If our query can be answered by the cache then that is it or else the cache in turn passes the query to the main Yahoo servers ...
Why do you think so ?
Can you give an example where my algo does not work ?
Quick question how do you separate the parts before and after the decimal ?
- abhimanipal April 07, 2010Quick question how do you separate the parts before and after the decimal ?
- abhimanipal April 07, 2010To solve the problem according to your method me need to calculate the eigen vectors.... Calculating the eigen vectors for large n is not that simple
Here I think we can use the divide and conquer approach only
The question says that the sum of the chosen numbers from each list should be zero. How does your algorithm ensure that ?
- abhimanipal April 07, 2010BST can perform operations like sorting in constant time as opposed to hash table
- abhimanipal April 07, 2010If I am not wrong, in the LCS problem, the sub sequence has to be contiguous which is not the case here
So I am not sure LCS can be applied in this scenario ....
Why cant we use Linked List ?
- abhimanipal April 06, 2010Can we not use BFS for printing the sum at each level ?
- abhimanipal April 06, 2010Maybe this is just wishful thinking but is it possible to do this using just 1 stack ?
- abhimanipal April 06, 2010That makes much more sense.....
- abhimanipal April 06, 2010This answer seems to be correct ..... But will use a lot of extra space...
- abhimanipal March 21, 2010If pointer to the root is given then we can use BFS as well
- abhimanipal March 19, 2010Very nice solution ....
- abhimanipal March 18, 2010I got a seg fault as the value of th was not initialized
- abhimanipal March 10, 2010ISR have to be taken care of right away where as user function calls can be delayed
- abhimanipal March 10, 2010Well you could start of with saying that the getchar() function will call the library function which would call the system call.
The kernel looks into the system call table to see the location of the appropriate system call. The implementation will then get the appropriate character.
Most system calls return either success or failure of the call. Hence to return the value of the character there is some special structure in the implementation. The value of this structure is then returned to the library function and consequently comes as the result of your get char
Totally .....
- abhimanipal March 09, 2010
Respect !
- abhimanipal April 14, 2010