面试遇到了算法题?看这篇就够啦。

2023-10-29

Interviews

软件工程技术面试个人指南。

Maintainer - Kevin Naughton Jr.

其他语言版本

目录

在线练习

在线面试编程

数据结构

Linked List

  • 链表即是由节点(Node)组成的线性集合,每个节点可以利用指针指向其他节点。它是一种包含了多个节点的、能够用于表示序列的数据结构。
  • 单向链表: 链表中的节点仅指向下一个节点,并且最后一个节点指向空。
  • 双向链表: 其中每个节点具有两个指针 p、n,使得 p 指向先前节点并且 n 指向下一个节点;最后一个节点的 n 指针指向 null。
  • 循环链表:每个节点指向下一个节点并且最后一个节点指向第一个节点的链表。
  • 时间复杂度:
    • 索引: O(n)
    • 搜索: O(n)
    • 插入: O(1)
    • 移除: O(1)

Stack

  • 栈是元素的集合,其包含了两个基本操作:push 操作可以用于将元素压入栈,pop 操作可以将栈顶元素移除。
  • 遵循后入先出(LIFO)原则。
  • 时间复杂度:
    • 索引: O(n)
    • 搜索: O(n)
    • 插入: O(1)
    • 移除: O(1)

Queue

  • 队列是元素的集合,其包含了两个基本操作:enqueue 操作可以用于将元素插入到队列中,而 dequeeu 操作则是将元素从队列中移除。
  • 遵循先入先出原则 (FIFO)。
  • 时间复杂度:
    • 索引: O(n)
    • 搜索: O(n)
    • 插入: O(1)
    • 移除: O(1)

Tree

  • 树是无向、连通的无环图。

Binary Tree

  • 二叉树即是每个节点最多包含左子节点与右子节点这两个节点的树形数据结构。
  • 满二叉树: 树中的每个节点仅包含 0 或 2 个节点。
  • 完美二叉树(Perfect Binary Tree): 二叉树中的每个叶节点都拥有两个子节点,并且具有相同的高度。
  • 完全二叉树: 除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。

Binary Search Tree

  • 二叉搜索树(BST)是一种特殊的二叉树,其任何节点中的值都会大于或者等于其左子树中存储的值并且小于或者等于其右子树中存储的值。
  • 时间复杂度:
    • 索引: O(log(n))
    • 搜索: O(log(n))
    • 插入: O(log(n))
    • 删除: O(log(n))

 

Binary Search Tree

Trie

  • 字典树,又称基数树或者前缀树,能够用于存储键为字符串的动态集合或者关联数组的搜索树。树中的节点并没有直接存储关联键值,而是该节点在树中的挂载位置决定了其关联键值。某个节点的所有子节点都拥有相同的前缀,整棵树的根节点则是空字符串。

 

Alt text

 

Fenwick Tree

  • 树状数组又称 Binary Indexed Tree,其表现形式为树,不过本质上是以数组实现。数组中的下标代表着树中的顶点,每个顶点的父节点或者子节点的下标能够通过位运算获得。数组中的每个元素包含了预计算的区间值之和,在整棵树更新的过程中同样会更新这些预计算的值。
  • 时间复杂度:
    • 区间求值: O(log(n))
    • 更新: O(log(n))

 

Alt text

 

Segment Tree

  • 线段树是用于存放间隔或者线段的树形数据结构,它允许快速的查找某一个节点在若干条线段中出现的次数.
  • 时间复杂度:
    • 区间查询: O(log(n))
    • 更新: O(log(n))

 

Alt text

 

Heap

  • 堆是一种特殊的基于树的满足某些特性的数据结构,整个堆中的所有父子节点的键值都会满足相同的排序条件。堆更准确地可以分为最大堆与最小堆,在最大堆中,父节点的键值永远大于或者等于子节点的值,并且整个堆中的最大值存储于根节点;而最小堆中,父节点的键值永远小于或者等于其子节点的键值,并且整个堆中的最小值存储于根节点。
  • 时间复杂度:
    • 访问: O(log(n))
    • 搜索: O(log(n))
    • 插入: O(log(n))
    • 移除: O(log(n))
    • 移除最大值 / 最小值: O(1)

Max Heap

Hashing

  • 哈希能够将任意长度的数据映射到固定长度的数据。哈希函数返回的即是哈希值,如果两个不同的键得到相同的哈希值,即将这种现象称为碰撞。
  • Hash Map: Hash Map 是一种能够建立起键与值之间关系的数据结构,Hash Map 能够使用哈希函数将键转化为桶或者槽中的下标,从而优化对于目标值的搜索速度。
  • 碰撞解决
    • 链地址法(Separate Chaining): 链地址法中,每个桶是相互独立的,包含了一系列索引的列表。搜索操作的时间复杂度即是搜索桶的时间(固定时间)与遍历列表的时间之和。
    • 开地址法(Open Addressing): 在开地址法中,当插入新值时,会判断该值对应的哈希桶是否存在,如果存在则根据某种算法依次选择下一个可能的位置,直到找到一个尚未被占用的地址。所谓开地址法也是指某个元素的位置并不永远由其哈希值决定。

 

Alt text

 

Graph

  • 图是一种数据元素间为多对多关系的数据结构,加上一组基本操作构成的抽象数据类型。
    • 无向图(Undirected Graph): 无向图具有对称的邻接矩阵,因此如果存在某条从节点 u 到节点 v 的边,反之从 v 到 u 的边也存在。
    • 有向图(Directed Graph): 有向图的邻接矩阵是非对称的,即如果存在从 u 到 v 的边并不意味着一定存在从 v 到 u 的边。

Graph

算法

排序

快速排序

  • 稳定: 否
  • 时间复杂度:
    • 最优时间: O(nlog(n))
    • 最坏时间: O(n^2)
    • 平均时间: O(nlog(n))

 

Alt text

 

归并排序

  • 归并排序是典型的分治算法,它不断地将某个数组分为两个部分,分别对左子数组与右子数组进行排序,然后将两个数组合并为新的有序数组。
  • 稳定: 是
  • 时间复杂度:
    • 最优时间: O(nlog(n))
    • 最坏时间: O(nlog(n))
    • 平均时间: O(nlog(n))

 

Alt text

 

桶排序

  • 桶排序将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。
  • 时间复杂度:
    • 最优时间: Ω(n + k)
    • 最坏时间: O(n^2)
    • 平均时间:Θ(n + k)

 

Alt text

 

基数排序

  • 基数排序类似于桶排序,将数组分割到有限数目的桶中;不过其在分割之后并没有让每个桶单独地进行排序,而是直接进行了合并操作。
  • 时间复杂度:
    • 最优时间: Ω(nk)
    • 最坏时间: O(nk)
    • 平均时间: Θ(nk)

图算法

深度优先搜索

  • 深度优先算法是一种优先遍历子节点而不是回溯的算法。
  • 时间复杂度: O(|V| + |E|)

 

Alt text

 

广度优先搜索

  • 广度优先搜索是优先遍历邻居节点而不是子节点的图遍历算法。
  • 时间复杂度: O(|V| + |E|)

 

Alt text

 

拓扑排序

  • 拓扑排序是对于有向图节点的线性排序,如果存在某条从 u 到 v 的边,则认为 u 的下标先于 v。
  • 时间复杂度: O(|V| + |E|)

Dijkstra 算法

  • Dijkstra 算法 用于计算有向图中单源最短路径问题。
  • 时间复杂度: O(|V|^2)

 

Alt text

 

Bellman-Ford 算法

  • Bellman-Ford 算法是在带权图中计算从单一源点出发到其他节点的最短路径的算法。
  • 尽管算法复杂度大于 Dijkstra 算法,但是它适用于包含了负值边的图。
  • 时间复杂度:
    • 最优时间: O(|E|)
    • 最坏时间: O(|V||E|)

 

Alt text

 

Floyd-Warshall 算法

  • Floyd-Warshall 算法 能够用于在无环带权图中寻找任意节点的最短路径。
  • 时间复杂度:
    • 最优时间: O(|V|^3)
    • 最坏时间: O(|V|^3)
    • 平均时间: O(|V|^3)

Prim 算法

  • Prim 算法是用于在带权无向图中计算最小生成树的贪婪算法。换言之,Prim 算法能够在图中抽取出连接所有节点的边的最小代价子集。
  • 时间复杂度: O(|V|^2)

 

Alt text

 

Kruskal 算法

  • Kruskal 算法同样是计算图的最小生成树的算法,与 Prim 的区别在于并不需要图是连通的。
  • 时间复杂度: O(|E|log|V|)

 

Alt text

 

位运算

  • 位运算即是在位级别进行操作的技术,合适的位运算能够帮助我们得到更快地运算速度与更小的内存使用。
  • 测试第 k 位: s & (1 << k)
  • 设置第 k 位: s |= (1 << k)
  • 第 k 位置零: s &= ~(1 << k)
  • 切换第 k 位值: s ^= ~(1 << k)
  • 乘以 2: s << n
  • 除以 2: s >> n
  • 交集: s & t
  • 并集: s | t
  • 减法: s & ~t
  • 交换 x = x ^ y ^ (y = x)
  • 取出最小非 0 位(Extract lowest set bit): s & (-s)
  • 取出最小 0 位(Extract lowest unset bit): ~s & (s + 1)
  • 交换值:
     
    1. ```

    2. x ^= y;

    3. y ^= x;

    4. x ^= y;

    5. ```

算法复杂度分析

大 O 表示

  • 大 O 表示 用于表示某个算法的上限,往往用于描述最坏的情况。

 

Alt text

 

小 O 表示

  • 小 O 表示用于描述某个算法的渐进上界,不过二者要更为紧密。

大 Ω 表示

  • 大 Ω 表示用于描述某个算法的渐进下界。

 

Alt text

 

小 ω 表示

  • Little Omega Notation用于描述某个特定算法的下界,不过不一定很靠近。

Theta Θ 表示

  • Theta Notation用于描述某个确定算法的确界。

 

Alt text

 

视频教程

面试书籍

  • Competitive Programming 3 - Steven Halim & Felix Halim
  • Cracking The Coding Interview - Gayle Laakmann McDowell
  • Cracking The PM Interview - Gayle Laakmann McDowell & Jackie Bavaro

计算机科学与技术资讯

文件结构

 
  1. .

  2. ├── Array

  3. │ ├── bestTimeToBuyAndSellStock.java

  4. │ ├── findTheCelebrity.java

  5. │ ├── gameOfLife.java

  6. │ ├── increasingTripletSubsequence.java

  7. │ ├── insertInterval.java

  8. │ ├── longestConsecutiveSequence.java

  9. │ ├── maximumProductSubarray.java

  10. │ ├── maximumSubarray.java

  11. │ ├── mergeIntervals.java

  12. │ ├── missingRanges.java

  13. │ ├── productOfArrayExceptSelf.java

  14. │ ├── rotateImage.java

  15. │ ├── searchInRotatedSortedArray.java

  16. │ ├── spiralMatrixII.java

  17. │ ├── subsetsII.java

  18. │ ├── subsets.java

  19. │ ├── summaryRanges.java

  20. │ ├── wiggleSort.java

  21. │ └── wordSearch.java

  22. ├── Backtracking

  23. │ ├── androidUnlockPatterns.java

  24. │ ├── generalizedAbbreviation.java

  25. │ └── letterCombinationsOfAPhoneNumber.java

  26. ├── BinarySearch

  27. │ ├── closestBinarySearchTreeValue.java

  28. │ ├── firstBadVersion.java

  29. │ ├── guessNumberHigherOrLower.java

  30. │ ├── pow(x,n).java

  31. │ └── sqrt(x).java

  32. ├── BitManipulation

  33. │ ├── binaryWatch.java

  34. │ ├── countingBits.java

  35. │ ├── hammingDistance.java

  36. │ ├── maximumProductOfWordLengths.java

  37. │ ├── numberOf1Bits.java

  38. │ ├── sumOfTwoIntegers.java

  39. │ └── utf-8Validation.java

  40. ├── BreadthFirstSearch

  41. │ ├── binaryTreeLevelOrderTraversal.java

  42. │ ├── cloneGraph.java

  43. │ ├── pacificAtlanticWaterFlow.java

  44. │ ├── removeInvalidParentheses.java

  45. │ ├── shortestDistanceFromAllBuildings.java

  46. │ ├── symmetricTree.java

  47. │ └── wallsAndGates.java

  48. ├── DepthFirstSearch

  49. │ ├── balancedBinaryTree.java

  50. │ ├── battleshipsInABoard.java

  51. │ ├── convertSortedArrayToBinarySearchTree.java

  52. │ ├── maximumDepthOfABinaryTree.java

  53. │ ├── numberOfIslands.java

  54. │ ├── populatingNextRightPointersInEachNode.java

  55. │ └── sameTree.java

  56. ├── Design

  57. │ └── zigzagIterator.java

  58. ├── DivideAndConquer

  59. │ ├── expressionAddOperators.java

  60. │ └── kthLargestElementInAnArray.java

  61. ├── DynamicProgramming

  62. │ ├── bombEnemy.java

  63. │ ├── climbingStairs.java

  64. │ ├── combinationSumIV.java

  65. │ ├── countingBits.java

  66. │ ├── editDistance.java

  67. │ ├── houseRobber.java

  68. │ ├── paintFence.java

  69. │ ├── paintHouseII.java

  70. │ ├── regularExpressionMatching.java

  71. │ ├── sentenceScreenFitting.java

  72. │ ├── uniqueBinarySearchTrees.java

  73. │ └── wordBreak.java

  74. ├── HashTable

  75. │ ├── binaryTreeVerticalOrderTraversal.java

  76. │ ├── findTheDifference.java

  77. │ ├── groupAnagrams.java

  78. │ ├── groupShiftedStrings.java

  79. │ ├── islandPerimeter.java

  80. │ ├── loggerRateLimiter.java

  81. │ ├── maximumSizeSubarraySumEqualsK.java

  82. │ ├── minimumWindowSubstring.java

  83. │ ├── sparseMatrixMultiplication.java

  84. │ ├── strobogrammaticNumber.java

  85. │ ├── twoSum.java

  86. │ └── uniqueWordAbbreviation.java

  87. ├── LinkedList

  88. │ ├── addTwoNumbers.java

  89. │ ├── deleteNodeInALinkedList.java

  90. │ ├── mergeKSortedLists.java

  91. │ ├── palindromeLinkedList.java

  92. │ ├── plusOneLinkedList.java

  93. │ ├── README.md

  94. │ └── reverseLinkedList.java

  95. ├── Queue

  96. │ └── movingAverageFromDataStream.java

  97. ├── README.md

  98. ├── Sort

  99. │ ├── meetingRoomsII.java

  100. │ └── meetingRooms.java

  101. ├── Stack

  102. │ ├── binarySearchTreeIterator.java

  103. │ ├── decodeString.java

  104. │ ├── flattenNestedListIterator.java

  105. │ └── trappingRainWater.java

  106. ├── String

  107. │ ├── addBinary.java

  108. │ ├── countAndSay.java

  109. │ ├── decodeWays.java

  110. │ ├── editDistance.java

  111. │ ├── integerToEnglishWords.java

  112. │ ├── longestPalindrome.java

  113. │ ├── longestSubstringWithAtMostKDistinctCharacters.java

  114. │ ├── minimumWindowSubstring.java

  115. │ ├── multiplyString.java

  116. │ ├── oneEditDistance.java

  117. │ ├── palindromePermutation.java

  118. │ ├── README.md

  119. │ ├── reverseVowelsOfAString.java

  120. │ ├── romanToInteger.java

  121. │ ├── validPalindrome.java

  122. │ └── validParentheses.java

  123. ├── Tree

  124. │ ├── binaryTreeMaximumPathSum.java

  125. │ ├── binaryTreePaths.java

  126. │ ├── inorderSuccessorInBST.java

  127. │ ├── invertBinaryTree.java

  128. │ ├── lowestCommonAncestorOfABinaryTree.java

  129. │ ├── sumOfLeftLeaves.java

  130. │ └── validateBinarySearchTree.java

  131. ├── Trie

  132. │ ├── addAndSearchWordDataStructureDesign.java

  133. │ ├── implementTrie.java

  134. │ └── wordSquares.java

  135. └── TwoPointers

  136. ├── 3Sum.java

  137. ├── 3SumSmaller.java

  138. ├── mergeSortedArray.java

  139. ├── minimumSizeSubarraySum.java

  140. ├── moveZeros.java

  141. ├── removeDuplicatesFromSortedArray.java

  142. ├── reverseString.java

  143. └── sortColors.java

转载:https://juejin.im/post/58ca051f61ff4b0060165122

 

个人建了前端学习群,旨在一起学习前端。纯净、纯粹技术讨论,非前端人员勿扰!入群加我微信:iamaixiaoxiao。

 

 

https://blog.csdn.net/wulixiaoxiao1/article/details/62881203

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

面试遇到了算法题?看这篇就够啦。 的相关文章

  • 线性代数如何在算法中使用?

    我的几个同行都提到 学习算法时 线性代数 非常重要 我研究了各种算法并学习了一些线性代数课程 但我没有看到其中的联系 那么线性代数如何应用在算法中呢 例如 图的连接矩阵可以带来哪些有趣的事情 三个具体例子 线性代数是现代 3D 图形的基础
  • 在 O(n) 时间内找到 n x n 矩阵中的局部最小值

    所以 这不是我的家庭作业问题 而是取自 coursera 算法和数据结构课程的未评分作业 现已完成 You are given an n by n grid of distinct numbers A number is a local m
  • 如何高效地在屏幕上精确绘制N个点?

    这听起来是一个简单的问题 但我发现要获得良好的性能是非常棘手的 我提出的第一个算法是随机绘制点 从一组中检查是否已绘制 否则绘制 如果我们只绘制几个点 那么这种方法效果很好 但当我们接近填满屏幕时 速度会灾难性地减慢 我想出的最好的方法是构
  • 删除队列中的最后一个元素

    我需要删除队列的最后一个元素 我唯一可以使用的操作是 Peek 获取第一个元素而不删除它 Enqueue element 向队列末尾插入一个元素 Dequeue 删除第一个元素 IsEmpty true 或 false 队列是否为空 而且我
  • 最慢的计算复杂度(Big-O)

    在这些算法中 我知道 Alg1 是最快的 因为它是 n 平方的 接下来是 Alg4 因为它是 n 的立方 然后 Alg2 可能是最慢的 因为它是 2 n 这应该具有非常差的性能 然而Alg3和Alg5在我的阅读速度方面还没有遇到过 这两种算
  • 寻找将集合映射到整数的双射函数

    对于任意两个序列 a b 其中 a a1 a2 an 且 b b1 b2 bn 0a b具有相同的元素 而不关心它们的顺序 例如 如果 a 1 1 2 3 b 2 1 3 1 c 3 2 1 3 则 f a f b f a f b 我知道有
  • 由周期表元素形成的最大单词的算法

    我想为以下问题场景编写一个算法 根据元素周期表元素的名称 找到可以组成的最大单词 符号如Na Ne等应被视为单个元素 这是在一家知名公司的求职面试中被问到的 有人可以帮我解决这个问题吗 我认为更好的方法是检查字典中的每个单词 看看是否可以从
  • 时间复杂度和运行时间有什么区别?

    时间复杂度和运行时间有什么区别 它们是一样的吗 运行时间是指程序运行所需的时间 时间复杂度是对输入大小趋于无穷大时运行时间渐进行为的描述 您可以说运行时间 是 O n 2 或其他什么 因为这是描述复杂性类和大 O 表示法的惯用方式 事实上
  • Karasuba算法递归过多

    我正在尝试用 c 实现 Karasuba 乘法算法 但现在我只是想让它在 python 中工作 这是我的代码 def mult x y b m if max x y lt b return x y bm pow b m x0 x bm x1
  • 如何仅使用单个数组在 JavaScript 中模拟调用堆栈

    我正在看维基百科页面 https en wikipedia org wiki Call stack在调用堆栈上 并尝试理解这个图像 据我所知 哈哈 const memory memory 0 3 top of stack pointer m
  • 生成所有多集大小为 n 的分区的算法

    我一直在试图找出一种方法来生成多重集的所有不同的大小为 n 的分区 但到目前为止却空手而归 首先让我展示一下我想要实现的目标 假设我们有一个输入向量uint32 t std vector
  • 快速约会算法

    我在一家咨询公司工作 大部分时间都在客户所在地 正因为如此 我很少见到同事 为了更好地了解彼此 我们将安排一个晚宴 会有很多小桌子 方便人们聊天 为了在聚会期间与尽可能多的不同的人交谈 每个人都必须每隔一段时间 比如每小时 换一张桌子 如何
  • 在常数空间中创建 1..N 的随机排列

    我正在寻找枚举固定空间中数字 1 N 的随机排列 这意味着我无法将所有数字存储在列表中 原因是 N 可能非常大 超过可用内存 我仍然希望能够一次遍历这样一个数字的排列 只访问每个数字一次 我知道对于某些 N 可以这样做 许多随机数生成器随机
  • 直接选择排序与交换选择排序

    有什么区别直接选择排序 vs 交换选择排序 今天我陷入了一场争论 我的教授在他的讲义中使用了这两个术语 维基百科和任何教科书或网站都会为您提供的选择排序就是他所说的 交换选择排序 我以前从未听说过 交换选择排序 这个术语 仅 选择排序 并且
  • 数学组合的完美最小哈希

    首先定义两个整数N and K where N gt K 两者都在编译时已知 例如 N 8 and K 3 接下来 定义一组整数 0 N or 1 N 如果这使答案更简单 并调用它S 例如 0 1 2 3 4 5 6 7 的子集数量S wi
  • 迭代任意大小的子集

    我可以迭代大小为 1 的子集 for int a 0 a lt size a 或大小为 2 的子集 for int a1 0 a1 lt size a1 for int a2 a1 1 a2 lt size a2 or 3 for int
  • 归并排序中递归树的高度log(n)+1是怎么来的

    我按照 stackoveflow 的建议阅读了一些问题和答案 我正在遵循 cormen 的 算法简介 一书进行自学 那本书里已经解释得很清楚了 但唯一没有解释的是如何在合并排序分析中计算树的高度 如果在后面的章节中对此进行解释的话 我仍然在
  • 照片马赛克算法。如何在给定基本图像和瓷砖列表的情况下创建马赛克照片?

    Hy 我要做的是创建一个程序 使用 C 或 C 它将 24 位 像素位图和图像集合作为输入 我必须创建一个马赛克图像 类似于使用库的输入图像给定的图像 创建与输入类似的马赛克照片 到目前为止 我可以访问输入的图像像素及其颜色 但我有点卡住了
  • 需要解释搜索最小大和的算法

    我正在解决 Codility 问题作为练习 但无法回答其中一个问题 我在互联网上找到了答案 但我不明白这个算法是如何工作的 有人可以引导我逐步完成它吗 这是问题 You are given integers K M and a non em
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex

随机推荐

  • 泰拉瑞亚显示已连接服务器失败,打开泰拉瑞亚提示网络异常或者连接不上

    泰拉瑞亚这款游戏相信大家都不陌生吧 最近小编经常收到打开泰拉瑞亚提示网络异常或者连接不上问题的反馈 接下来小编就为大家提供几种常见的处理方案 泰拉瑞亚游戏简介 泰拉瑞亚 Terraria 人气像素游戏 登陆 Android 平台 它被玩家戏
  • PDF复制文字到Word出现空格、换行等格式调整

    文章目录 WORD内批量替换 QQ文字识别 推荐 PDF复制到word后出现大量空格 换行 难以一个个调整 下面结束两种批量处理的方法 建议将PDF复制的内容在新word文档中调整好后再粘贴到需要的文档中 不然一不小心就把之前的内容全部替换
  • Zookeeper 客户端之基本操作指令

    ZooKeeper命令行工具类似于Linux的shell环境 不过功能肯定不及shell啦 但是使用它我们可以简单的对ZooKeeper进行访问 数据创建 数据修改等操作 命令行工具的一些简单操作如下 zkCli sh客户端连接命令 ls
  • Spring5的总体架构图

    Spring5的主体架构图 主要是四大部分 Web Data Access Integration Core Container 中间层 具体见下图 转载于 https www cnblogs com love jk p overall h
  • @TableField介绍和使用

    1 TableField exist false 注解加载bean属性上 表示当前属性不是数据库的字段 但在项目中必须使用 这样在新增等使用bean的时候 mybatis plus就会忽略这个 不会报错 否则会报一个如下的异常 Error
  • okhttp3.0忽略https证书

    okhttp的基本使用网上很多 可以自己找到很多例子 最近有个项目需要https 进行验证发送请求回来error 提示 host not vertify 琢磨了半天 最后是需要将证书认证忽略 那就开始构建一个SSL来信任所有的证书 忽略证书
  • Swin-Transformer-Semantic-Segmentation训练自己的数据集

    论文地址 源码 1 按照作者的步骤安装好所需的环境 2 安装可以运行一下demo看环境是否搭建成功 3 准备好自己的数据集 我用的是VOC数据集 4 修改confis base datasets pascal voc12 py 5 修改mm
  • [Spring Boot]12 ElasticSearch实现分词搜索功能

    目录 一 前言 二 搜索功能的需求 三 需求开发 1 服务器安装ElasticSearch和IK分词器 2 需求开发 1 pom xml引入jar包 2 yml增加配置 3 配置类ElasticsearchConfig 4 工具类Elast
  • C语言详解系列——循环语句详解(3)do while语句的语法结构

    文章目录 do while语句 do while语句中的break和continue break continue do while语句与while语句的不同点 简单练习 do while语句 之前的学习中我们已经了解到了while 语句和
  • 算法:单调队列

    队列 先进先出 题型 滑动窗口 求滑动窗口里的最大 或最小 值 例1 P1886 滑动窗口 模板 单调队列 求滑动窗口里的最大小值 include
  • csdn添加可跳转的文章目录连接

    一篇文章最好只有一个目录 toc 这是文章标题 toc 自定义标题 自定义标题这样写
  • CentOs安装Redis

    一提到Redis 相信大家都不会感到陌生吧 今天就让我们在阿里云上安装一下Redis 为以后使用它做个准备 一 下载 1 下载页面 https redis io 2 下载 wget http download redis io releas
  • c++构造函数

    建立一个对象时 通常最需要立即做的工作是初始化对象 如对数据成员赋初值 构造函数就是用来用来在创建对象时初始化对象 为对象数据成员赋初始值 类的数据成员是不能在类定义时初始化的 原因是类定义并没有产生一个实体 而是给出了一个数据类型 不占用
  • RBF应用实例

    RBF网络能够逼近任意的非线性函数 可以处理系统内的难以解析的规律性 具有良好的泛化能力 并有很快的学习收敛速度 已成功应用于非线性函数逼近 时间序列分析 数据分类 模式识别 信息处理 图像处理 系统建模 控制和故障诊断等 简单说明一下为什
  • misc和crtpto一些刷题(nssctf)

    misc Spectre 将音频放进audacity 一下出 utflag sp3tr0gr4m0ph0n3 crypto SWPUCTF 2022 新生赛 什锦 一眼猪圈密码 找个在线解密解一下 http www hiencode com
  • Centos7 安装Python3和scrapy(正确安装姿势)

    苦逼的前夜 昨晚很辛苦 搞到晚上快两点 最后还是没有把python3下的scrapy框架安装起来 后面还把yum这玩意给弄坏了 一直找不到命令 今天早上又自己弄了快一上午 又求助 函兮 弄了快一个中午 最后无奈还是没有弄好yum跟pytho
  • Blazor 路由及导航开发指南

    翻译自 Waqas Anwar 2021年4月2日的文章 A Developer s Guide To Blazor Routing and Navigation 1 检查传入的请求 URL 并将它们导航到对应的视图或页面是每个单页应用程序
  • keil5——安装教程附资源包

    目录 一 安装mdk 1 下载keil5的压缩包 解压后 点击运行mdk514 2 在弹出来的以下界面中 点击 Next 3 下一个界面中 勾选 I agree 然后再次点击 Next 4 到达下面这个界面之后 记住原始默认安装路径 5 点
  • 开机出现recovering journal解决办法

    系统环境 安装的双系统win10和Ubuntu 18 04 出现问题 电脑开机后登陆Ubuntu系统出现recovering journal clean xxx files xxx blocks 如下图所示 出现问题了 然后就开始找解决方法
  • 面试遇到了算法题?看这篇就够啦。

    原文地址 github com kdn251 interviews 译文出自 掘金翻译计划 译者 王下邀月熊 校对者 PhxNirvana 根号三 这个 链接 用来查看本翻译与英文版是否有差别 如果你没有看到 README md 发生变化