📜  必须为基于产品的公司做编码问题

📅  最后修改于: 2022-05-13 01:58:42.806000             🧑  作者: Mango

必须为基于产品的公司做编码问题

随着安置季节的回归,GeeksforGeeks 在这里帮助您完成面试。我们选择了一些最常见的和必须做的练习题来破解基于产品的公司面试。

您还可以参加我们的模拟分班竞赛,这将帮助您同时学习不同的主题和练习,模拟真实分班考试环境的感觉。

基于产品的公司必须做的编码问题

注意:现在您可以跟踪您的进度并从这些问题的视频社论中学习Must Do Interview Preparation Course

话题:

  • 数学
  • 大批
  • 搜索
  • 排序
  • 矩阵
  • 细绳
  • 散列
  • 位掩码
  • 链表
  • 队列
  • 二叉树
  • BST
  • 图形
  • 特里
  • 贪婪的
  • DP
  • 递归
  • 回溯
  • 算法
  • 设计

数学

QuestionArticlePractice
Missing Number in ArrayLinkLink
Trailing Zeros in FactorialLinkLink
A Simple FractionLinkLink
Nth Natural NumberLinkLink
Smallest Positive Integer that can not be represented as SumLinkLink

数组

数组是存储在连续内存位置的项目的集合。这个想法是将多个相同类型的项目存储在一起。

QuestionArticlePractice
Rotate ArrayLinkLink
Majority ElementLinkLink
Plus oneLinkLink
Array of alternative +ve and -ve no.sLinkLink
Product Array puzzleLinkLink
Frequencies of Limited Range Array ElementsLinkLink
Large FactorialLinkLink
Jump GameLinkLink
Maximum number of 1’sLinkLink
Stock Buy and SellLinkLink
Longest Consecutive SubsequenceLinkLink
Maximum value of difference of a pair of elements and their IndexLinkLink
Maximum indexLinkLink
K-th element of two sorted ArraysLinkLink
Trapping Rain WaterLinkLink
3 sum closestLinkLink
Maximum circular Subarray SumLinkLink
Merge without Extra SpaceLinkLink

搜索

QuestionArticlePractice
Search insert position of K in a sorted arrayLinkLink
Collecting WoodLinkLink
Left most and right most indexLinkLink
Bitonic Point LinkLink
Search an element in sorted and rotated arrayLinkLink
Square root of a numberLinkLink
Find missing in second arrayLinkLink
Painter’s Partition ProblemLinkLink
Median of 2 sorted arrays of Different sizesLinkLink
Allocate minimum number of pagesLinkLink

排序

QuestionArticlePractice
Wave arrayLinkLink
Count the number of possible trianglesLinkLink
Triplets with sum with given rangeLinkLink
Count InversionsLinkLink
Relative SortingLinkLink
Minimum PlatformsLinkLink
Maximum IndexLinkLink

矩阵

矩阵表示按行和列顺序排列的数字集合。必须将矩阵的元素括在圆括号或方括号中。

QuestionArticlePractice
Sort a 2D vector diagonallyLinkLink
Spiral MatrixLinkLink
Boolean matrixLinkLink
Rotate matrix by 90 degreesLinkLink
Search in a row-column sorted MatrixLinkLink
Row with maximum 1sLinkLink

细绳

字符串被定义为一个字符数组。字符数组和字符串的区别在于字符串以特殊字符'\0' 结尾。

QuestionArticlePractice
Reverse words in a given stringLinkLink
Longest Common PrefixLinkLink
Roman Number to IntegerLinkLink
Next higher palindrome number using the same set of digitsLinkLink
Length of longest prefix suffixLinkLink
Smallest window in string containing all charactersLinkLink
Validate an IP addressLinkLink
Implement AtoiLinkLink
Look and say PatternLinkLink
Longest K unique characters substringLinkLink

散列

QuestionArticlePractice
Key PairLinkLink
Top K Frequent Elements in ArrayLinkLink
Intersection of two arraysLinkLink
Array Pair Sum Divisibility ProblemLinkLink
Triplet Sum in ArrayLinkLink
Length of the longest substringLinkLink
Is Sudoku ValidLinkLink
Print Anagrams Together LinkLink
Subarrays with sum KLinkLink
Longest subarray with sum divisible by KLinkLink

位掩码

QuestionArticlePractice
Reverse bitsLinkLink
Number of set bitsLinkLink
Sum of two integersLinkLink
Check whether K-th bit is set or notLinkLink
Longest Consecutive 1’sLinkLink
Find the element that appears onceLinkLink
Gray codeLinkLink
Maximum ANDLinkLink
Maximum subset XORLinkLink
Bit DifferenceLinkLink

链表

链表是一种线性数据结构,其中元素不存储在连续的内存位置。

QuestionArticlePractice
Merge Two Sorted Linked ListsLinkLink
Reverse a Linked ListLinkLink
Delete a Node without Head PointerLinkLink
Add two Numbers represented by linked listsLinkLink
Finding middle element in a linked listLinkLink
Check if linked list is palindromeLinkLink
Rearrange a linked listLinkLink
Detect and Remove a loop In Linked ListLinkLink
Merge Sort for Linked ListLinkLink
Intersection of Linked ListLinkLink
Rotate Linked List by K placesLinkLink
Flattening a Linked ListLinkLink
Reverse a linked list in groups of given sizeLinkLink
Partition a linked list around a given valueLinkLink
Clone a linked list with next and random pointersLinkLink

堆栈是一种线性数据结构,其中元素只能从列表的一侧(称为顶部)插入和删除。堆栈遵循 LIFO(后进先出)原则。

QuestionArticlePractice
Parenthesis CheckerLinkLink
Infix to PostfixLinkLink
Restrictive Candy CrushLinkLink
Next Larger Element LinkLink
Stock span problemLinkLink
The Celebrity ProblemLinkLink
Maximum Rectangular Area in a Histogram LinkLink
Longest Valid ParenthesesLinkLink
Maximum of minimum for every window sizeLinkLink
Remove K digitsLinkLink
132 Geeky BuildingsLinkLink

队列

队列是一种线性数据结构,其中元素只能从列表的一侧插入,称为后部,元素只能从列表的另一侧删除,称为前部。队列数据结构遵循FIFO(先进先出)原则。

QuestionArticlePractice
Maximum of all subarrays of size KLinkLink
Circular tour (Sliding Window)LinkLink

堆是一种特殊的基于树的数据结构,其中树是完全二叉树。

QuestionArticlePractice
Rearrange CharactersLinkLink
Minimum Cost of ropesLinkLink
Kth largest element of streamLinkLink
Merge k sorted arraysLinkLink
Median of streamLinkLink

二叉树

元素最多有 2 个子节点的树称为二叉树。由于二叉树中的每个元素只能有 2 个孩子,我们通常将它们命名为左孩子和右孩子。

QuestionArticlePractice
Symmetric TreeLinkLink
Zigzag Tree TraversalLinkLink
Checked for Balanced treeLinkLink
Height of Binary TreeLinkLink
Diameter of Binary treeLinkLink
Determine if two trees are identicalLinkLink
Minimum depth of binary treeLinkLink
Check if subtreeLinkLink
Inorder Traversal (iterative)LinkLink
Preorder Traversal (iterative)LinkLink
Postorder Traversal(iterative)LinkLink
Vertical Traversal of a Binary TreeLinkLink
Construct Binary Tree from Preorder and Inorder TraversalLinkLink
Connect nodes at same levelLinkLink
Lowest Common Ancestor of a Binary TreeLinkLink
Boundary TraversalLinkLink
Sum treeLinkLink
Binary Tree to Doubly Linked ListLinkLink
Maximum sum path between two leaf nodesLinkLink
Burning TreeLinkLink

二叉搜索树

二叉搜索树是一种基于节点的二叉树数据结构,具有以下属性:

  • 节点的左子树仅包含键小于节点键的节点。
  • 节点的右子树只包含键大于节点键的节点。
  • 左右子树也必须是二叉搜索树。
QuestionArticlePractice
Check for BSTLinkLink
Array to BSTLinkLink
Inorder Successor in BSTLinkLink
Kth Largest Element in a BSTLinkLink
Remove BST keys outside the given rangeLinkLink
Pair with given target in BSTLinkLink
Unique BSTsLinkLink
Preorder Traversal and BSTLinkLink
Merge two BST’sLinkLink
Fixing two nodes of a BSTLinkLink

图形

图是由节点和边组成的非线性数据结构。节点有时也称为顶点,边是连接图中任意两个节点的线或弧。

QuestionArticlePractice
Number of IslandsLinkLink
COVID SpreadLinkLink
Prerequisite tasksLinkLink
Strongly Connected ComponentLinkLink
Minimum swaps to sortLinkLink
Shortest pathLinkLink
Circle of StringsLinkLink
Snake and Ladder Problem LinkLink
Detect cycle in an undirected graphLinkLink
Detect cycle in a directed graphLinkLink
Check for Bipartite graphLinkLink
Unit Area of Largest region of 1sLinkLink
Alien DictionaryLinkLink
Word LadderLinkLink

特里

Trie 是一种高效的信息检索数据结构。使用 Trie,搜索复杂性可以达到最佳限制(密钥长度)。

QuestionArticlePractice
Minimum XOR value pairLinkLink
Word Boggle – IILinkLink
Most frequent word in an array of stringsLinkLink
Minimum XOR value pairLinkLink

贪婪的

贪婪是一种算法范式,它逐步构建解决方案,总是选择下一个提供最明显和直接好处的部分。

QuestionArticlePractice
N meetings in one roomLinkLink
Coin PilesLinkLink
Maximize ToysLinkLink
Largest number with given sumLinkLink
Minimize the heightsLinkLink
Fractional KnapsackLinkLink
Job SequencingLinkLink
Police and ThievesLinkLink
Water the PlantsLinkLink

DP

动态规划主要是对普通递归的优化。无论我们在哪里看到重复调用相同输入的递归解决方案,我们都可以使用动态编程对其进行优化。

QuestionArticlePractice
Count ways to reach the n’th stairLinkLink
Get Minimum SquaresLinkLink
Nth Fibonacci NumberLinkLink
0 – 1 Knapsack ProblemLinkLink
Number of CoinsLinkLink
Edit distanceLinkLink
Maximize The Cut SegmentsLinkLink
Box StackingLinkLink
Longest Increasing SubsequenceLinkLink
Longest Palindromic SubstringLinkLink
Longest Common SubstringLinkLink
Longest Common SubsequenceLinkLink
Wildcard Pattern MatchingLinkLink
Total Decoding MessagesLinkLink
Max length chainLinkLink
Maximum sum increasing subsequenceLinkLink
Minimum number of jumpsLinkLink
Subset Sum ProblemLinkLink
Maximum path sum in matrixLinkLink
Player with max scoreLinkLink
Shortest Common SupersequenceLinkLink
Palindrome PartitioningLinkLink
Form a PalindromeLinkLink
Boolean ParenthesizationLinkLink
Matrix ChainLinkLink
Maximum ProfitLinkLink
Minimum Cost PathLinkLink
Partition Equal Subset SumLinkLink

递归

函数直接或间接调用自身的过程称为递归,相应的函数称为递归函数。

QuestionArticlePractice
Number of PathsLinkLink
Pascals TriangleLinkLink
Josephus problemLinkLink
Tower of HanoiLinkLink
Special KeyboardLinkLink
Flood Fill AlgorithmLinkLink

回溯

回溯是一种递归解决问题的算法技术,它通过尝试逐步构建解决方案,一次一个,删除那些在任何时间点都不能满足问题约束的解决方案(这里指的是时间)到达搜索树的任何级别所经过的时间)。

QuestionArticlePractice
Permutations LinkLink
Letter Combinations of a Phone NumberLinkLink
Generate ParenthesesLinkLink
Word Boggle – 1LinkLink
Rat in a Maze ProblemLinkLink
Largest number in K swapsLinkLink
Combination SumLinkLink
Palindrome PartitioningLinkLink
N-Queen ProblemLinkLink
Solve the SudokuLinkLink

算法

QuestionArticlePractice
Bubble SortLinkLink
Insertion SortLinkLink
Selection SortLinkLink
Merge SortLinkLink
Quick SortLinkLink
Heap SortLinkLink
Count SortLinkLink
Kadane AlgorithmLinkLink
Minimum Spanning TreeLinkLink
Implementing Dijkstra AlgorithmLinkLink
Floyd WarshallLinkLink
Bellman Ford AlgorithmLinkLink
Rabin-Karp AlgorithmLinkLink
KMP algorithmLinkLink
Z AlgorithmLinkLink
Huffman EncodingLinkLink

设计

QuestionArticlePractice
Stack using two queuesLinkLink
Queue using stackLinkLink
Ternary SearchLinkLink
Binary Heap OperationsLinkLink
LRU cacheLinkLink
Trie | (Insert and Search)LinkLink

您还可以查看我们最新的在线课程系列,了解 DS & Algo 被命名为 DSA,它涵盖了从基础到高级的数据结构的所有内容。

笔记:

  • 如果您正在寻找最常见的 CS 科目面试问题或理论问题,请参阅以下链接 - Amazon、Microsoft、Flipkart 中计算机科学科目的面试问题最多
  • 我们还准备了一份关于公司的顶级编码问题列表。请参阅以下链接 - 公司必须做的编码问题
  • 如果您正在寻找有关竞争性编程之旅的完整指南,请参阅以下链接 - 竞争性编程 - 完整指南。

GeeksforGeeks 课程