之前我也写过一两篇与算法技巧相关的文章一些常用的算法技巧总结【算法技巧】位运算装逼指南今天的这篇文章,算是一种补充,同时会列举一些常见的算法题,如何用这些技巧来解决,通过使用这些方法,可以让一些算法题变的更加简单。1、用n&(n-1)消去n最后的一位1在n的二进制表示中,如果我们对n执行n=n&(n-1)那么可以把n最右边的1消除掉,例如n=1001n-1=1000n=n&
分类:
编程语言 时间:
2020-12-01 12:44:24
阅读次数:
17
前阵子有人和我反馈说,我写的大部分算法都有点难度,好多都是没听说过的,有点冷门,不过,写的很不错。不过说实话,我好像写的大部分算法、都不是那么的常见,也具有一定的难度,也都不是热门算法。主要是我觉得,那些热门的算法,例如二分查找、链表逆序、深度遍历等各种,对应的文章太多了,感觉你们应该都看过,应该也都懂,所以我就没打算写了。不过,可能是我想多了,我问了一些人,发现还是挺多人对很多热门算法不是很懂的
分类:
编程语言 时间:
2020-12-01 12:43:52
阅读次数:
20
108. 将有序数组转换为二叉搜索树 Difficulty: 简单 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树_每个节点 _的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是 ...
分类:
编程语言 时间:
2020-12-01 12:09:01
阅读次数:
6
##题目描述 给定一个数组a和数字k,找出a中第k大的数。 ##方法一:快排思想 找到一个枢轴,枢轴右边还有k-1个数即可。因为每次遍历只选择一边,因而降低了时间复杂度。 public class Main { public static int kthBiggest (int[]a,int k,i ...
分类:
其他好文 时间:
2020-12-01 11:48:36
阅读次数:
3
#题目链接 increasing-decreasing-string #题目内容 给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 ...
分类:
其他好文 时间:
2020-12-01 11:47:42
阅读次数:
3
public Map<String, Object> addMain(Map<String, Object> params) { // TODO Auto-generated method stub Map<String, Object> response = new HashMap<String, ...
分类:
其他好文 时间:
2020-11-30 16:07:11
阅读次数:
6
###题目 1287. Element Appearing More Than 25% In Sorted Array ###解题方法 遍历数组,找到出现次数最多的那个数即可。 时间复杂度:O(n) 空间复杂度:O(1) ###代码 class Solution: def findSpecialIn ...
分类:
移动开发 时间:
2020-11-30 15:53:35
阅读次数:
10
冒泡排序:比较相邻两个项,若 第一个项 大于 第二个项,那么交换他们,元素向上移动一次,直到遍历结束。 来实现一下 function bubbleSort(arr) { // 提前存储数组的长度 避免每次遍历都读这个值 let { length } = arr // 开始一个外层循环,代表每次取下标 ...
分类:
编程语言 时间:
2020-11-30 15:29:42
阅读次数:
6
void copy(BiTree T,BiTree &NewT){ //复制树 if(T == NULL){ NewT = NULL; return; }else { NewT = new BiTNode; NewT->data = T->data; copy(T->lchild,NewT->lch ...
分类:
其他好文 时间:
2020-11-30 15:28:17
阅读次数:
2
编辑用户级配置文件 vim ~/.bashrc 添加配置信息: export PATH=/usr/local/mongodb/mongodb-3.6.5/bin:$PATH (中间那部分就是你的安装目录下的bin) 保存退出,刷新:source ~/.bashrc 我们输入mongo,显示版本信息, ...
分类:
其他好文 时间:
2020-11-27 11:48:48
阅读次数:
36