随笔分类 - 算法小知识
摘要:1. 二叉树的深度遍历 递归法 和 迭代法 前序(中左右) 、中序(左中右) 、后序(左右中) 遍历 点击查看代码 #include"../tools.h" struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(in
阅读全文
摘要:0. 用到的基础功能库 tools.h 代码如下: 点击查看代码 #include<vector> #include<queue> #include<stack> #include<iostream> #include<cmath> #include<algorithm> using namespa
阅读全文
摘要:0. 用到的基础功能库 tools.h 代码如下: 点击查看代码 #include<vector> #include<iostream> #include<cmath> #include<algorithm> using namespace std; struct ListNode { int va
阅读全文
摘要:1. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假
阅读全文
摘要:1. 移除链表元素 删除链表中等于给定值 val 的所有节点。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:head = [], val = 1 输出:[] 示例 3: 输入:head = [7,7,7,7], v
阅读全文
摘要:1. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target , 写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释:
阅读全文
摘要:位运算的异或 “^” 运算符 0. 异或原理 0 ^ N = N; N ^ N = 0; 满足交换律 和 结合律。 1. 交换两个数的值 假设需要交换两个数 的值: a = a ^ b; b = a ^ b; a = a ^ b; 思路演示: 为了方便演示不同的
阅读全文