التخطي إلى المحتوى الرئيسي

How do I start learning or strengthen my knowledge of data structures and algorithms?

Day 
 to 0: Stick to a programming language like C or C++. Make sure that you are comfortable with pointers/objects.
Day 1: Understand the concept of Algorithmic complexity. Skip the theory for now, but for every piece of code you write, you should be able to derive both time and space complexity.
Day 2 - 10: Let’s start with some simple data structures,
  1. Arrays
  2. Linked Lists
  3. Strings
  4. Stacks
  5. Queues
Understand their basic operations (insert, delete, search, traversal) and their complexity - Big-O Algorithm Complexity Cheat Sheet, and code them all.
Day 11 - 25: Let’s now learn some simple algorithms,
  1. Sorting - Insertion sortMerge sortQuick sortHeap sortBucket sortCounting sortRadix sortExternal sorting
  2. Search - Linear searchBinary Search (along with its variants).
  3. Prime Numbers - Sieve of EratosthenesPrimality test
  4. Strings - String searchingLCSPalindrome detection
  5. Miscellaneous - Euclidean algorithmMatrix multiplicationFibonacci NumbersPascal's TriangleMax Subarray problem
Day 26 - 50: Once you are comfortable with everything above, start doing problems from,
  1. Cracking the Coding Interview
  2. Elements of Programming Interviews
  3. Programming Interviews Exposed: Secrets to Landing Your Next Job
  4. GeeksforGeeks
  5. HackerRank
  6. InterviewBit
Stick to chapters of arrays, linked lists, strings, stacks, queues and complexity.
Day 51 - 60: Let’s learn some non-linear data structures,
  1. Tree
    1. Binary Tree, Binary Search Tree - Tree traversalsLowest common ancestorDepth, Height & DiameterFinding k-th smallest element
    2. Heaps
  2. Hash table - 4 sum problemChecking if sudoku solution is valid
  3. Graph - Breadth-first searchDepth-first searchTopological sortingMinimum spanning treeShortest path problem,
Day 61- 90: Refer to the previous resources and start doing problems from trees, hash tables, heaps and graphs.
Day 101 - 
: You are now better than most of the CS undergrads. Keep revising the above topics and start competitive programming




تعليقات

المشاركات الشائعة من هذه المدونة

تصميم الالعاب الالكترونية

100 مليار دولار هو حجم وناتج تجارة وصناعة سوق الألعاب الالكترونية دوليا، ليصبح هذا السوق في أهمية أسواق أي سلع استراتيجية أخرى .. مع انتشار الهواتف الذكية بصورة كبيرة و انتشار العاب و تطبيقات الهواتف الذكية اصبح هناك العديد من   الاشخاص يهتمون بتصميم العاب الاندرويد و الايفون  لذلك تقوم شركة لودكس بتصميم العاب اندرويد وايفون والالعاب الاونلاين والعاب الديسك توب بكل احترافية وبتصميمات رائعة وجودة عالية .    Game Developing           

أفضل برامج لصناعة الرسوم المتحركة

تعد صناعة أفلام الكارتون والأنيميشن من الصناعات الضخمة والمكلفة، إلا أن ظهور التكنولوجيا وكثير من التطبيقات تسهل من صناعتها كثيرا، مع توفير الكثير من الأموال التي يتم إنفاقها لعمل أفلام مميزة. وترصد فيتو 3 برامج لعمل أفلام أنيميشن 3D 1- برنامج Autodesk 3DS Max يتميز البرنامج بأنه سهل الاستخدام، وسريع، ويمكن من خلاله ابتكار شخصيات مختلفة ثلاثية الأبعاد، البرنامج غير مجانى إلا أنه يمكن تحميله للتجربة، أو الحصول عليه مجانا لمدة 3 سنوات في حالة كنت طالب، ويمكن تحميله من  هنا  2-برنامج Cinema 4D. ويتميز البرنامج بتوفير مجموعة واسعة من الإصدارات المختلفة، والتي تناسب كافة الاحتياجات وميزانية المستخدم، البرنامج سهل الاستخدام، ويوفر الكثير من الخيارات التي تمكن من عمل فيلم احترافى، ويمكن التحميل من  هنا  بعد اختيار الإصدار المناسب. 3- برنامج FlipaClip  وهو تطبيق خاص بالهواتف الذكية العاملة بنظام أندرويد، البرنامج سهل الاستخدام، التطبيق يقدم العديد من المزايا من طبقات الرسم، وجدول زمنى وأدوات مختلفة للرسم، ويمكن تحميله من  هنا  4- تطبيق Animation ...

Difference between virtual reality, augmented reality and mixed reality

Augmented reality and mixed reality are often used to refer to the same idea, however there are a few potential differences between the two depending on who you speak to. To some, it is semantics, while to companies like Microsoft, there is an important distinction between the two terms. The majority of mentions of augmented reality and mixed reality in the press right now refer to “mixed reality” as a synonym of “augmented reality”. Even experiences which could be under the umbrella of “mixed reality” are called “augmented reality” by the companies creating them. This is where things get confusing. “Mixed reality” is most commonly used by Microsoft to describe their HoloLens. The media often call it “augmented reality” to begin with, adding on in a rather forced sounding way — “or as Microsoft calls it, ‘mixed reality’”, followed by using the terms interchangeably throughout their articles. It is best explained by starting with the much easier definition of “virtual reality”: ...