0

Useful software engineering stuff

by Deepak Dhakal 9. August 2019 23:37

mlubinsky.github.com

https://habr.com/ru/company/skillbox/blog/462979/

Fibonacci

https://habr.com/ru/post/449616/

https://habr.com/ru/post/450594/

http://www.oranlooney.com/post/fibonacci/

https://news.ycombinator.com/item?id=19216356

Monads

https://blog.kabir.sh/posts/inventing-monads.html

Algo

https://github.com/TheAlgorithms/Python

https://github.com/30-seconds/30-seconds-of-python-code

https://m.stopa.io/10-offers-100-days-the-journey-16a0407b8d95 interview https://habr.com/ru/post/454264/ . Inteview

https://habr.com/ru/post/455260/ Merkel’s tree

https://hackernoon.com/20-string-coding-interview-questions-for-programmers-6b6735b6d31c

https://medium.com/@fahimulhaq/14-patterns-to-ace-any-coding-interview-question-c5bb3357f6ed

https://www.solutionfactory.in/posts/Floyd-Cycle-Detection-Algorithm-in-Java Cycle detection

https://docs.google.com/spreadsheets/d/1GOO4s1NcxCR8a44F0XnsErz5rYDxNbHAHznu4pJMRkw/edit#gid=0

http://web.stanford.edu/class/archive/cs/cs161/cs161.1168/

http://web.stanford.edu/class/cs166/handouts/100%20Suggested%20Final%20Project%20Topics.pdf

https://www.youtube.com/channel/UC_79TBgKFlEwFp345dYF7ag

https://robertheaton.com/2014/05/02/jaccard-similarity-and-minhash-for-winners/

https://cses.fi/book/ . Competitive programming book

https://www.amazon.com/dp/1793296634 Algo Book

https://www.byte-by-byte.com/google-interview/

https://courses.csail.mit.edu/iap/interview/materials.php

http://www.cs.sjtu.edu.cn/~jiangli/teaching/CS222/files/materials/Algorithm%20Design.pdf Algo book

https://www.byte-by-byte.com

https://www.youtube.com/watch?v=9clnwaqOU2E string algo

https://www.globalsoftwaresupport.com/most-common-programming-interview-questions-in-2019/

https://github.com/devAmoghS/Practice-Problems

https://habr.com/ru/post/442352/ Бинарные деревья поиска

https://www.youtube.com/watch?v=lpO_arK69vg LCA

https://habr.com/ru/post/438512/ алгоритм Хаффмана

https://djhworld.github.io/hyperloglog/

http://blog.amynguyen.net/?p=853

https://eddmann.com/posts/depth-first-search-and-breadth-first-search-in-python/

http://www.java67.com/2018/05/top-75-programming-interview-questions-answers.html

http://www.algorithmsilluminated.org/

https://habr.com/ru/post/112222/ heap

https://habr.com/ru/post/437702/ Разбор задачи с собеседования в Google: синонимичные запросы

http://algorithms.wtf/

http://opendatastructures.org/

https://algoexpert.io/rachit Use “rachit” as coupon code to get 30% off

https://algs4.cs.princeton.edu/home/

https://www.youtube.com/watch?v=TeZqKnC2gvA Visitor design pattern

https://medium.freecodecamp.org/unmasking-bitmasked-dynamic-programming-25669312b77b

https://techiedelight.quora.com/500-Data-Structures-and-Algorithms-interview-questions-and-their-solutions

https://blog.usejournal.com/i-interviewed-at-six-top-companies-in-silicon-valley-in-six-days-and-stumbled-into-six-job-offers-fe9cc7bbc996

https://www.businessinsider.fr/us/microsoft-new-developer-interview-process-2018-12

https://stackabuse.com/programming-interview-questions/

https://bradfieldcs.com/algos/

http://rachitiitr.blogspot.com/

https://www.youtube.com/watch?v=4NIb9l3imAo

disjoint set union (DSU) или Union-Find. https://habr.com/ru/post/104772/ создать быструю структуру, которая поддерживает следующие операции:

MakeSet(X) — внести в структуру новый элемент X, создать для него множество размера 1 из самого себя. Find(X) — возвратить идентификатор множества, которому принадлежит элемент X. В качестве идентификатора мы будем выбирать один элемент из этого множества — представителя множества. Гарантируется, что для одного и того же множества представитель будет возвращаться один и тот же, иначе невозможно будет работать со структурой: не будет корректной даже проверка принадлежности двух элементов одному множеству if (Find(X) == Find(Y)).

Unite(X, Y) — объединить два множества, в которых лежат элементы X и Y, в одно новое.

http://iolivia.me/posts/4-bloom-filter-part-3/ Bloom filter

https://stackoverflow.com/questions/2936213/explain-how-finding-cycle-start-node-in-cycle-linked-list-work

https://stackoverflow.com/questions/41515081/algorithm-find-all-permutations-of-string-a-in-string-b

https://www.youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX . system design questions

https://www.youtube.com/watch?v=bBPHpH8aKjw look fo links here!

https://blog.sqreen.io/demystifying-radix-trees/ . Radix tree https://news.ycombinator.com/item?id=18921058 . Radix trees

https://stackoverflow.com/questions/11897088/diameter-of-binary-tree-better-design

http://www.interviewdruid.com/ https://github.com/parineeth/tbboci-3rd-edition-python https://www.amazon.com/dp/1983861189

https://www.algoexpert.io/product

https://www.hackerrank.com/

https://www.interviewbit.com/

https://www.jeffcarp.com/posts/2018-how-to-solve-every-software-engineering-interview-question/

https://habr.com/ru/post/457042/ . Tree traversal using 2 threads (Java)

LCA

https://en.wikipedia.org/wiki/Lowest_common_ancestor https://sites.google.com/site/mytechnicalcollection/algorithms/trees/lca-of-binary-tree https://stackoverflow.com/questions/1484473/how-to-find-the-lowest-common-ancestor-of-two-nodes-in-any-binary-tree

https://www.youtube.com/channel/UCcAWgbpROQrPok18E6UozWw/videos

https://www.facebook.com/tusharroy25/

https://github.com/mission-peace/interview/tree/master/src/com/interview

https://github.com/donnemartin/interactive-coding-challenges

https://github.com/alexhagiopol/cracking-the-coding-interview

https://github.com/charulagrl/data-structures-and-algorithms

https://github.com/thundergolfer/interview-with-python/tree/master/solutions/python

https://github.com/anubhavshrimal/Data_Structures_Algorithms_In_Python

https://github.com/bt3gl/Python-and-Algorithms-and-Data-Structures/

https://blog.finxter.com/python-interview-questions/

https://stackabuse.com/graph-data-structure-interview-questions/

http://www.java67.com/2018/05/top-75-programming-interview-questions-answers.html

https://www.quora.com/How-do-I-learn-algorithms-2

https://skillupper.com/

https://moultano.wordpress.com/2018/11/08/minhashing-3kbzhsxyg4467-6/

https://moultano.wordpress.com/2018/11/08/minhashing-3kbzhsxyg4467-6/

https://habr.com/post/430788/

http://www.benfrederickson.com/distance-metrics/

https://www.youtube.com/watch?v=1CxyVdA_654 Running mediam in stream

https://www.youtube.com/watch?v=IHsX70r-fIQ Max sub-sequence in string

https://www.quora.com/How-do-I-start-learning-or-strengthen-my-knowledge-of-data-structures-and-algorithms?redirected_qid=2804253

https://medium.com/educative/3-month-coding-interview-bootcamp-904422926ce8

https://stratos.seas.harvard.edu/files/stratos/files/periodictabledatastructures.pdf

https://hackernoon.com/10-data-structure-algorithms-and-programming-courses-to-crack-any-coding-interview-e1c50b30b927

https://www.bitdegree.org/user/course/data-structures-and-algorithms

https://news.ycombinator.com/item?id=18236396 . Favorite algos

https://aryaboudaie.com/interviews/python/technical/2017/11/06/python-for-interviews.html

https://www.youtube.com/watch?v=vS4Zn1a9KUc

https://www.youtube.com/watch?v=7Hlb8YX2-W8

http://csc.kth.se/~jsannemo/slask/main.pdf Book

https://cses.fi/book.pdf Book

http://e-maxx.ru/index.php

https://blog.datopia.io/2018/11/03/hitchhiker-tree/

https://github.com/tayllan/awesome-algorithms

https://github.com/karan/Projects

http://cslibrary.stanford.edu/

<http://www.idryman.org/blog/2017/07/04/learn-hash-table-the-hard-way/ https://medium.com/engineering-brainly/locality-sensitive-hashing-explained-304eb39291e4 Local sensitive hash https://sagi.io/2017/07/bloom-filters-for-the-perplexed/https://news.ycombinator.com/item?id=15346337 https://stackoverflow.com/questions/3260653/algorithm-to-find-top-10-search-terms/3260905#3260905

http://yucoding.blogspot.com/2017/01/leetcode-question-range-sum-query.html http://massivealgorithms.blogspot.com/http://ruslanledesma.com/ http://algorithms.tutorialhorizon.com/

https://www.youtube.com/watch?v=GiCWlXEhht8 https://www.youtube.com/watch?v=il_t1WVLNxk https://www.youtube.com/watch?v=e5D3NepYvLE https://www.youtube.com/watch?v=eaYX0Ee0Kcg https://www.youtube.com/watch?v=zGv3hOORxh0

http://quiz.geeksforgeeks.org/amazons-most-frequently-asked-interview-questions-set-2/ https://www.geeksforgeeks.org/amazons-asked-interview-questions/

https://www.youtube.com/watch?v=eaYX0Ee0Kcg https://www.udemy.com/11-essential-coding-interview-questions/?couponCode=AMAZON2

Google interview

https://habr.com/post/419945/

https://news.ycombinator.com/item?id=18374938

https://habr.com/company/google/blog/425279/

https://medium.com/@alexgolec/google-interview-questions-deconstructed-the-knights-dialer-f780d516f029

https://www.youtube.com/watch?v=5o-kdjv7FD0

https://interviewing.io/recordings

https://habr.com/post/419725/ Non-symmetric dime simulation

http://www.cmsmagazine.ru/library/items/programming/80-problems-with-it-interviews/

https://saru.science/tech/2017/01/18/judy-arrays.html Judy array

https://www.reddit.com/r/cpp/comments/9afpq7/whats_your_favorite_data_structure/

https://habr.com/post/420605/

https://discuss.codechef.com/questions/48877/data-structures-and-algorithms

https://hackernoon.com/50-data-structure-and-algorithms-interview-questions-for-programmers-b4b1ac61f5b0

https://en.wikipedia.org/wiki/Ant_on_a_rubber_rope

https://www.youtube.com/playlist?list=PLBZBJbE_rGRVnpitdvpdY9952IsKMDuev

Egg drop

https://habr.com/post/423679/

http://declanoller.com/2018/09/03/the-egg-drop-puzzle-brute-force-dynamic-programming-and-markov-decision-processes/

Find 1st element in rotated sorted array

def bs(lst, start, end):
   print ("start=",start, "end=", end)
   if start == end:  return start
   m = (start+end)//2
   print ("middle=",m, lst[m])

   if m < end and lst[m+1] < lst[m]:
      return m+1
   if m > start and lst[m] < lst[m-1]:
      return m

   if lst[end] > lst[m]:
      return bs(lst, start, m -1)
   else:
      return  bs(lst, m+1, end)

def find(l):
  start=0
  end=len(l)-1
  i= bs(l, start, end)
  return i

if __name__ =="__main__":
  print ("main")
  l1=[5,10,20, 1,2,3,4]
  print(l1)
  i=find(l1)
  print ("index=",i)

  l2=[20, 1,2,3,4]
  print(l2)
  i=find(l2)
  print ("index=",i)

Hash function and hashtable

https://habr.com/ru/company/otus/blog/448992/

https://honest.engineering/posts/hash-functions-survival-guide

https://en.wikipedia.org/wiki/Hash_function

https://rcoh.me/posts/hash-map-analysis/

https://attractivechaos.wordpress.com/2018/10/01/advanced-techniques-to-implement-fast-hash-tables/

https://softwareengineering.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed

https://rcoh.me/posts/hash-map-analysis/

https://www.reddit.com/r/programming/comments/9lw5pu/advanced_techniques_to_implement_fast_hash_tables/

Consistent Hashing

https://www.toptal.com/big-data/consistent-hashing

https://medium.com/@dgryski/consistent-hashing-algorithmic-tradeoffs-ef6b8e2fcae8 Consistent hashing

https://dzone.com/articles/simple-magic-consistent

Locality sensitive hashing

https://en.wikipedia.org/wiki/Locality-sensitive_hashing

http://unboxresearch.com/articles/lsh_post1.html

https://dev.to/s_awdesh duplicates in array, dual pivot sort

Dynamic programming

https://habr.com/post/418867/

https://habr.com/post/423939/

https://ngoldbaum.github.io/posts/dynamic-programming/

https://news.ycombinator.com/item?id=20285242

https://avikdas.com/2019/06/24/dynamic-programming-for-machine-learning-hidden-markov-models.html

https://avikdas.com/2019/04/15/a-graphical-introduction-to-dynamic-programming.html

https://medium.freecodecamp.org/unmasking-bitmasked-dynamic-programming-25669312b77b

https://blogarithms.github.io/articles/2019-03/cracking-dp-part-one

https://www.geeksforgeeks.org/min-cost-path-dp-6/

https://macnovicetomaster.wordpress.com/2019/06/05/dynamic-programming-practice-problems/

Dynamic Programming- Python implementation of Min Cost Path on grid problem

def minCost(cost, m, n):

# Instead of following line, we can use int tc[m+1][n+1] or 
# dynamically allocate memoery to save space. The following 
# line is used to keep te program simple and make it working 
# on all compilers. 
R = 3
C = 3
tc = [[0 for x in range(C)] for x in range(R)] 
  
tc[0][0] = cost[0][0] 
  
# Initialize first column of total cost(tc) array 
for i in range(1, m+1): 
    tc[i][0] = tc[i-1][0] + cost[i][0] 
  
# Initialize first row of tc array 
for j in range(1, n+1): 
    tc[0][j] = tc[0][j-1] + cost[0][j] 
  
# Construct rest of the tc array 
for i in range(1, m+1): 
    for j in range(1, n+1): 
        tc[i][j] = min(tc[i-1][j-1], tc[i-1][j], tc[i][j-1]) + cost[i][j] 
  
return tc[m][n] 

Driver program to test above functions

cost = [[1, 2, 3], 
        [4, 8, 2], 
        [1, 5, 3]] 
print(minCost(cost, 2, 2)) 

Count number of ways to reach mat[m-1][n-1] from mat[0][0] in a matrix mat[][]

Returns The number of way from top-left to mat[m-1][n-1]

def countPaths(m, n):

dp = [[0 for i in range(m + 1)]  
         for j in range(n + 1)] 
  
for i in range(1, m + 1): 
    for j in range(1, n + 1): 
        if (i == 1 or j == 1): 
            dp[i][j] = 1
        else: 
            dp[i][j] = (dp[i - 1][j] + 
                        dp[i][j - 1])              
  
return dp[m][n] 

Driver code

if name ==”main”:

n = 5
m = 5
print(countPaths(n, m)) 

https://hackernoon.com/dynamic-programming-for-brute-forcers-36f26c2466cf>

https://medium.com/@codingfreak/top-50-dynamic-programming-practice-problems-4208fed71aa3

https://lukasmericle.github.io/dynprotut/

Others

http://www.cmsmagazine.ru/library/items/programming/80-problems-with-it-interviews/

Regular expression

https://regexr.com/

https://news.ycombinator.com/item?id=20608032

https://deniskyashif.com/implementing-a-regular-expression-engine/

https://deniskyashif.com/2019/02/17/implementing-a-regular-expression-engine/

https://www.youtube.com/watch?v=l3hda49XcDE

https://nikic.github.io/2012/06/15/The-true-power-of-regular-expressions.html

https://rcoh.me/posts/no-magic-regular-expressions-part-3/

https://medium.com/@cdiggins/beyond-regular-expressions-an-introduction-to-parsing-context-free-grammars-ee77bdab5a92

Inerpretators Compiles

https://bernsteinbear.com/blog/bytecode-interpreters/

https://news.ycombinator.com/item?id=18821475

Tags:

General | java | SQL

0

Bi-directional Map in Java

by Deepak Dhakal 28. July 2017 06:10

Yes, 

You can use the Google Collections API for that, recently renamed to Guava, specifically a BiMap

A bimap (or "bidirectional map") is a map that preserves the uniqueness of its values as well as that of its keys. This constraint enables bimaps to support an "inverse view", which is another bimap containing the same entries as this bimap but with reversed keys and values.

 

 

import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;

public class BiMapTest {

  public static void main(String[] args) {

    BiMap<String, String> biMap = HashBiMap.create();

    biMap.put("k1", "v1");
    biMap.put("k2", "v2");

    System.out.println("k1 = " + biMap.get("k1"));
    System.out.println("v2 = " + biMap.inverse().get("v2"));
  }
}

Tags:

java

Powered by BlogEngine.NET 1.5.0.7
Original Design by Laptop Geek, Adapted by onesoft