iPhone 钱包退上海交通卡指南

前情提要 不得不说 iPhone 的交通卡功能真是坑爹,在地铁站刷半天刷不出来被排队的人鄙视。更加坑爹的是退款步骤,开卡可以直接在钱包 App 里开,退卡非要在另一

数组中第 k 大个数

https://leetcode.com/problems/kth-largest-element-in-an-array/ Example 1: 1 2 Input: [3,2,1,5,6,4] and k = 2 Output: 5 Example 2: 1 2 Input: [3,2,3,1,2,4,5,5,6] and k = 4 Output: 4 partition 代码 这道题有很经典的 quickSort 变种而来的 quickSelect 算法,我也是采用的这种方法,所以首先要写一个 partition 函数,之

二叉树三种遍历的非递归实现

TreeNode 的定义 1 2 3 4 5 6 7 8 9 10 11 12 13 #include <stack>#include <vector>#include <iostream> using namespace std; struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} }; 前序遍历 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 vector<int> preorderTraversal(TreeNode *root) { vector<int> res; if

partition 版本的 quick sort

快速排序描述起来很简单,但是真正写起来却会出现千奇百怪的 bug。 Recap 快速排序就 4 个步骤: 选取数组中的一个值作为 pivot 令所有小于 pivot 的值都排在 pivot 左侧 令