数据结构和算法
青菜小王子
我向往自由
展开
-
二维数组排列组合
题给定如下一个二维数组,进行排列组合,输出如下形式的一维数组。输入:[ ['a', 'b', 'c', ...], [1, 2, 3, ...], ['x', 'y', 'z', ...], ... ];输出[‘a1x’, ‘a1y’, ‘a1z’, …]小米一面遇到的一道面试题,当场蒙圈了,过于紧张,愣是没写出来。痛定思痛,埋头思考,想到了一种解法,欢迎交流。解如果二维数组只存在两个一维数组,会怎么做呢?使用嵌套的forfunction compose(a原创 2020-12-30 19:36:20 · 2382 阅读 · 1 评论 -
浅析快速排序和归并排序
快速排序伪代码框架quickSort(array, low, high) { if(low >= high) return; let mid = partition(array, low, high); // 切分数组,并返回分界点mid quickSort(array, low, mid - 1); // 递归左区间 quickSort(array, mid + 1, high); // 递归右区间}快排和二叉树的前序遍历框架很类似traverse(root){ root.原创 2020-09-15 11:13:45 · 264 阅读 · 0 评论 -
N叉树的深度优先遍历、广度优先遍历、层序遍历
接口级联数据到组件数据源的映射接口返回的级联值经常与组件需要的label,value需要做映射转换,递归必不可少const originList = [{ code: '2973', name: '陕西', enums: [{ code: '2974', name: '西安', enums: [ { code: '2975', name: '西安市' }, { code: '2976'原创 2020-08-20 18:28:08 · 882 阅读 · 0 评论 -
实现二叉树前序、中序、后序遍历及广度优先遍历、层序遍历
构造一个树的数据结构tree,如下:const tree = { val: "F", left: { val: "B", left: { val: "A", left: null }, right: { val: "D", left: { val: "C" }, right: { val: "E" } } }, right: { .原创 2020-08-20 15:28:56 · 340 阅读 · 0 评论 -
二进制逻辑运算
逻辑加法(“或”运算)逻辑加法通常用符号“+”或“∨”来表示。逻辑加法运算规则如下: 0+0=0, 0∨0=0 0+1=1, 0∨1=1 1+0=1, 1∨0=1 1+1=1, 1∨1=1 从上式可见,逻辑加法有“或”的意义。也就是说,在给定的逻辑变量中,A或B只要有一个为1,其逻辑加的结果就为1;只有当两者都为0时逻辑加的结果才为0。逻辑乘法(“与”运算)逻辑乘法通常用符号“×”或“∧”转载 2017-09-29 16:14:44 · 10248 阅读 · 0 评论 -
排序算法学习
重拾算法:算法效率分析(一)(空间复杂度和时间复杂度)详解算法的各种复杂度的差别有多大(带图)算法复杂度选择排序简言之:从无序的列表中选择最小(最大)元素依次放到有序列表末尾。每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导...原创 2018-11-23 14:50:34 · 412 阅读 · 0 评论