书栈网 · BookStack 本次搜索耗时 0.022 秒,为您找到 59162 个相关结果.
  • 154*. Find Minimum in Rotated Sorted Array II

    题目描述(困难难度) 思路分析 想法一 想法二 想法三 总 题目描述(困难难度) 153 题 升级版,依旧是旋转过的数组,一个排序好的数组,把前边的若干的个数,一起移动到末尾,找出最小的数字。只不过这道题中的数字可能有重复的。 思路分析 想一下 153 题 我们怎么做的。 mid 和 end 比较。 mid < en...
  • 129. Sum Root to Leaf Numbers

    题目描述(中等难度) 思路分析 解法一 回溯法 解法二 分治法 总 题目描述(中等难度) 从根节点到叶子节点的路径组成一个数字,计算所有的数字和。 思路分析 和 112 题 有些像,112 题是给出一个 sum ,然后去找这条路径。但本质上都一样的,只需要对二叉树进行遍历,遍历过程中记录当前路径的和就可以。说到遍历,无非就是 BF...
  • 《设计模式简介》

    设计模式 设计模式 在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。 设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。 面向对象设计...
  • leetcode 100 斩!回顾

    为什么开始刷题? 刚开始的感觉 现在的感觉 刷题的收获 刷题的理解 未来的打算 leetcode 100 斩!从第 1 题开始,到现在也差不多快一年了,回顾纪念一下。 为什么开始刷题? 从大一就知道了 leetcode,但刷题总是三天打鱼,两天晒网,会发现刷过的题,隔一段时间再看还是需要很久才能再想起来,于是就萌发了刷一题总结一题的想...
  • 什么是 CSP

    Do not communicate by sharing memory; instead, share memory by communicating. 不要通过共享内存来通信,而要通过通信来实现内存共享。 这就是 Go 的并发哲学,它依赖 CSP 模型,基于 channel 实现。 CSP 经常被认为是 Go 在并发编程上成功的关键因素。C...
  • 烧饼排序

    烧饼排序 一、思路分析 二、代码实现 烧饼排序 烧饼排序是个很有意思的实际问题:假设盘子上有 n 块面积大小不一 的烧饼,你如何用一把锅铲进行若干次翻转,让这些烧饼的大小有序(小的在上,大的在下)? 设想一下用锅铲翻转一堆烧饼的情景,其实是有一点限制的,我们每次只能将最上面的若干块饼子翻转: 我们的问题是,如何使用算法得到一个翻转序...
  • 144. Binary Tree Preorder Traversal

    题目描述(中等难度) 思路分析 解法一 递归 解法二 栈 解法三 Morris Traversal 总 题目描述(中等难度) 二叉树的先序遍历。 思路分析 之前做过 94 题 的中序遍历,先序遍历的话代码可以直接拿过来用,只需要改一改 list.add 的位置。 解法一 递归 递归很好理解了,代码也是最简洁的。 pub...
  • 2. Add Two Numbers

    1. 题目描述(中等难度) 2. 图示 3. 思路 4. 代码 5. 扩展 6. 迭代思想 7. 迭代代码 8. 递归思想 9. 代码 1. 题目描述(中等难度) 就是两个链表表示的数相加,这样就可以实现两个很大的数相加了,无需考虑数值 int ,float 的限制了。 由于自己实现的很乱,直接按答案的讲解了。 2. 图示...
  • 1.1 新的工具 (New Tools)

    1.1 新的工具 (New Tools) 1.1 新的工具 (New Tools) 为什么要学 Lisp?因为它让你能做一些其它语言做不到的事情。如果你只想写一个函数来返回小于 n 的数字总和,那么用 Lisp 和 C 是差不多的: ; Lisp /* C */ ( defun sum ( n )...
  • 如何理解用户

    如何理解用户 如何理解用户 理解用户以及帮助你的 boss 理解用户是你的责任。因为用户没有像你一样密切地与你的产品的制造产生联系,他们的表现有点不同: 用户通常会做出简短的判断 用户有他们自己的工作,他们主要会思考你的产品中小的改进,而非大的改进 用户看不到你的产品的整个用户画像 你的责任是找出他们真实需要的东西,而非他们说他们需要的东西,然...