David
BAN USERDavid Ogirala
ogirala.1@osu.edu
www.davidogirala.com
OBJECTIVE
Seeking a career in software development
EDUCATION
Ohio State University, Columbus, OH (June 2010)
MS in Computer Science
COMPUTER SKILLS
Languages: C, C++, Core Java, C#.Net, VB.Net, ASP.Net
Internet technologies: HTML, JavaScript, FLEX, ActionScript 3.0
Databases: Oracle products (SQL *Plus. PL/SQL), RDBMS
Tools: OpenGL, Visual Studio, Visual Web Developer, Google Maps API, Matlab
Operating Systems: Windows Server 2003, Windows 7, UNIX, Linux
WORK EXPERIENCE
Office of Student Life IT, OSU, Columbus, OH, USA
Student Programmer (Jan 2010 to June 2010)
CSE dept. OSU, Columbus, OH, USA
Graduate Research Associate (Sep 2009 to Dec 2009)
Bayser Consulting, Skokie, IL, USA
Summer Analytical Programming Intern (June 2009 to Sep 2009)
Infosys Technologies Ltd., Bangalore, INDIA
Software Engineer (June 2006 to July 2008)
ACADEMIC PROJECTS
Gesture Recognition (Jun 2010)
Animation Techniques (September 2008)
Ray Tracing (December 2009)
Microsoft Surface Game (Feb 2010)
Neighborhood Tool (Sep 2009)
Flash Game: Weaver (June 2009)
3D Computer Animation (March 2009)
User-Driven Multi-Object Tracking and Recognition using Hand Gestures (December 2008)
Similarity-Based Image Retrieval System (April 2006)
EXTRA CURRICULAR
President of a student organization at OSU for 1 year
Participated in several paper presentations in undergrad
Awarded best project in undergrad (Similarity Based Image Retrieval)
Actively took part in several co-curricular activities in school and won several prizes
Avid musician
REFERENCES
Dr. Rick Parent
Dr. Jim Davis
Mr. Stephen Fischer
it works just like a tree, heap in particular, where nodes are stored in a, say a zero based array and its children are accessed by 2i+1 and 2i+2. in case of a pyramid, inner nodes have two parents. so the function to determine children is slightly different.
and sumpath is just like any recursion tree algo, say to find maxdepth at a node.
solution in O(log(n)) time
int sumPath(int[] a, int i)
{
int length = a.length();
int n = child(i);
if(n+1 < length)
return a[i] + max(sumPath(n), sumPath(n+1));
else if(n < length)
return a[i] + sumPath(n);
else
return a[i];
}
int child(int i)
{
//some function returns #out for a given #in
//example (in,out) pairs:
//(0,1), (1,3) (2,4), (3,6), (4,7), (5,8), (6,10), (7,11) etc.
}
how is this more optimal than O(n) time and O(n) space solution using hashmap?
- David August 05, 2010No way you get better than O(n) time. I guess he was looking for loop optimizations, fine tuning as such.