
算法练习
算法训练,解决方案收藏
咩咩羊10
微光·炬火
展开
-
算法之位运算的应用
位运算应用总结异或【^】异或的特点任何数和 00 做异或运算,结果仍然是原来的数,即a⊕0=a。任何数和其自身做异或运算,结果是 00,即 a⊕a=0。异或运算满足交换律和结合律,即 a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b异或的应用【力扣】只出现一次的数字数组中的全部元素的异或运算结果即为数组中只出现一次的数字。...原创 2021-04-21 17:46:20 · 72 阅读 · 0 评论 -
二叉树遍历模板总结【前中后+层级遍历】
递归常规遍历1.简易版【前+中+后】var traversal= (root) => { if (root) { // 前序遍历 return [root.val, ...traversal(root.left), ...traversal(root.right)] //中序遍历 return [ ...traversal(root.left), root.val, ...traversal(root.right)] //后序遍历 retur原创 2021-04-20 16:42:18 · 212 阅读 · 0 评论 -
二叉树中序遍历
Problem输入: 给定一个二叉树的根节点 root返回:它的 中序 遍历Answer莫里斯遍历 【推荐】用递归和迭代的方式都使用了辅助的空间,而莫里斯遍历的优点是没有使用任何辅助空间。缺点是改变了整个树的结构,强行把一棵二叉树改成一段链表结构。/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 :原创 2021-04-12 17:36:55 · 80 阅读 · 0 评论 -
二叉树的后序遍历
Problem输入: 一个整数数组(假设输入的数组的任意两个数字都互不相同)任务:判断该数组是不是某二叉搜索树的后序遍历结果返回:布尔值递归分治思路划分左右子树遍历数组arr [i, j]区间元素,寻找第一个大于根节点的节点arr[x] ,划分左子树区间 [i,x-1]右子树区间 [x, j - 1],根节点 j判断是否满足二叉搜索树条件条件: 左子树中所有节点的值 < 根节点的值;右子树中所有节点的值 > 根节点的值因左子树必满足,只需判断右子树终止条件i≥j,遍历原创 2021-04-09 19:47:11 · 170 阅读 · 0 评论 -
二叉树理解
二叉搜索树定义左子树中所有节点的值 << 根节点的值;右子树中所有节点的值 >> 根节点的值;其左、右子树也分别为二叉搜索树。二叉树的遍历先序遍历定义[ 根节点 |左子树 | 右子树 ]中序遍历定义[ 左子树 | 根节点 | 右子树 ]后序遍历定义[ 左子树 | 右子树 | 根节点 ]二叉树涉及算法见后文...原创 2021-04-09 17:11:40 · 102 阅读 · 0 评论 -
遗传算法实现对表达式求最大值的优化
#include <cstdio>#include <iostream>#include <ctime>#include <cstdlib>#include <cstring>#include <algorithm>using namespace std;const int maxn = 10; ...原创 2017-12-28 17:18:10 · 586 阅读 · 0 评论