摘要:
解题思路 用三个变量来描述皇后摆放的位置 对于列来说,用一个变量的32位来表示皇后放放在了那些列 对于右上到左下对角线,也用一个变量的位信息表示 对于左上到右下对角线,也用一个变量的位信息表示 列皇后所在的位置就是直接把放皇后的位设置成1 右上到左下对角线就是上一个限制,加上当前决定放皇后的位置,右 阅读全文
摘要:
二叉树层序遍历 解题思路 准备一个队列开始bfs,但题目还要求把相同层的节点放在一起,所以我们可以用另一种bfs在树上,收集节点 代码实现 /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct 阅读全文
摘要:
ls命令 list的全称是list directory contents,也就是显示当前工作目录的文件和它的子目录 cd命令 cd的全称是change directory,就是改变工作目录 mkdir命令 mkdir的全称是make directory,也就是创建一个目录 pwd命令 pwd的全称是 阅读全文
摘要:
相交链表 力扣题目链接 解题思路 如果两个单链表有相交,那么它们的最后一个节点的地址必定相等,如果两个单链表不相交,那么它们的最后一个节点的地址不相等。 那么想要求出第一个相交节点,只要两个链表的长度相等,然后在同时往后走,那么它们必定会在第一个相交节点相遇。 图片解析 通过这一张图片我们可以看到单 阅读全文
摘要:
数组中只有一个数出现次数少于m次,其他数都出现了m次,求出现次数少于m次的数 解题思路 把所有数当作一个巨大的二进制,那么出现m次的数必定在它们在的位置出现了m的倍数次,而少于m次的必定没有在一些位置出现m次,所有只要不是m的倍数次的数,那么它一定属于少于出现m次的数之中。 int f(int a[ 阅读全文
摘要:
不用比较和判断得到两个数中的最大值 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <time.h> #incl 阅读全文
摘要:
稳定性 指拍完序之后之前在数组中的相对次序是否改变了。 基于桶思想的排序都是有稳定性的,如果数据小于64可以直接用插入排序,timsort用的就是这种。 阅读全文
摘要:
基于比较的排序,不需要数据具有特征,只需要告诉比较的规则,那么便可以排序,非常的通用。 不基于比较的排序,需要数据具有特征,有局限性,不是通用的。 基数排序是一种不基于比较的排序, 一般排序的是十进制的非负整数。 代码实现 //基数排序 #define _CRT_SECURE_NO_WARNINGS 阅读全文
摘要:
堆 堆是一种特殊的完全二叉树,其他语言中的优先级队列就是堆。堆分为大根堆和小根堆,大根堆即对于每一颗树,它的父亲节点的值,一定大于它的孩子节点的值,左右节点的值不用管它的顺序。小根堆同理。 堆的实现通常是用数组实现的,那么对于每一个节点在数组中怎么找到它的父节点和它的左右孩子就成了一个问题。 那么对 阅读全文
摘要:
在一个无序数组中求第k大或者第k小的问题,要求时间复杂度是O(N),那么对于这两个问题只要解决一个另一个就解决了。因为求第一大可以转换成求第n小。 那么对于一个有100个元素的数组来说,我们要求第57小的数,那么它就是在求这个数组排好序之后下标在56的值,因为如果数组的元素没有重复的话,那么在下标0 阅读全文