
算法路上的摸爬滚打
文章平均质量分 57
算法路上的摸爬滚打
星辰鸿溟
你必须很努力,才能看起来毫不费力。
展开
-
B-树、B+树
B-Tree树B+树原创 2019-11-10 16:45:47 · 97 阅读 · 0 评论 -
位运算中的一些技巧
文章目录交换连个数int 的最大值求2的幂求4的幂 (0x55555555)交换连个数利用位运算交换两个数a = a ^ b;b = a ^ b;c = a ^ b;int 的最大值Integer.MAX_VALUE十进制:2147483647二进制:1111111 11111111 11111111 11111111求2的幂2 的幂次方,有一个特点是,最高位为1,地位全...原创 2019-11-10 14:14:01 · 171 阅读 · 0 评论 -
Leetcode:1. 两数之和
文章目录Leetcode:1. 两数之和题目描述答案方法一方法二方法三Leetcode:1. 两数之和题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target =...原创 2019-11-10 14:12:34 · 235 阅读 · 0 评论 -
LeetCode:56. 合并区间
56. 合并区间题目描述给出一个区间的集合,请合并所有重叠的区间。示例1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可...原创 2019-11-10 11:10:41 · 112 阅读 · 0 评论 -
Leetcode判断一个数是2,3,4的幂次方
文章目录231. 2的幂思路答案326. 3的幂思路答案342. 4的幂思路答案231. 2的幂给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false思路因为2的次幂有一个特点,只要是2的次幂则 n&(n-...原创 2019-11-09 21:39:45 · 400 阅读 · 0 评论 -
通用的递归思路 (用递归的方式判断数组中的元素是否有序)
通用的递归思路对于递归类型的问题,时刻记住两步,先写对推公式,在写找出终止条件,最后在翻译成递归代码。切记:写递归程序时,千万不要把自己绕进去,去想清楚每一步的细节,本来脑容量就不够,才把复杂的步骤交给计算机去计算。一开始老是想搞清楚每一步具体的细节,越想越晕,心里不服输的自己,越晕就想整明白,然后就晕晕晕…所以切记,切记,千万不要把自己绕进去,时刻记着:先写对推公式,找出终止条件,最后在...原创 2019-11-08 22:11:03 · 561 阅读 · 2 评论 -
判断两个字符串是否为变形词
判断两个字符串是否为变形词题目描述给定两个字符串str1和str2,如果str1和str2中出现的字符种类出现的一样且每种字符出现的次数也一样,那么str1和str2互为变形词。请判断str1和str2是否为变形词。输入描述:输入包括3行,第一行包含两个整数n,m(1≤n,m≤105) 分别代表str1和str2的长度,第二行和第三行为两个字符串,分别代表str1和str2。输出描述:...原创 2019-09-11 19:26:28 · 300 阅读 · 0 评论 -
LeetCode:二进制求和
二进制求和给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101" public String addBinary(String a, String b) { StringBuild...原创 2019-09-17 19:23:04 · 92 阅读 · 0 评论 -
链表的入环结点
题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。分析:以下为分析过程为 左程云 《程序员代码面试指南 --IT名企算法与数据结构题目最优解》中的解析如果一个链表没有环,那么遍历链表一定可以遇到链表的终点;如果链表中有环,那么遍历链表就永远在环里转下去了。如何找到第一个入环结点,具体过程如下:设置一个慢指针 slow 和一个快指针 fast 。...原创 2019-09-08 11:42:28 · 422 阅读 · 0 评论 -
LeetCode : 7.整数反转
LeetCode : 7.整数反转题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整...原创 2019-09-08 10:04:57 · 146 阅读 · 0 评论 -
Java 中的大根堆和小根堆
小根堆和大根堆**完全二叉树:**完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。小根堆:首先小根堆是一个完全二叉树,并且任何子树的最小值是它的根节点。大根堆:同理,大根堆也是一个完全二叉树,并且任何子树的最大值是它的根节点。Java 中现成的堆...原创 2019-09-02 22:34:15 · 5773 阅读 · 0 评论 -
链表
链表是一种用于存储数据集合的数据结构。链表有以下属性:相邻元素之间通过指针连接。最后一个元素的后继指针为NULL。在程序执行过程中,链表的长度可以增加或缩小。链表的空间能按需分配(直到内存耗尽)。没有内存空间的浪费(但链表中的指针需要一些额外的内存开销)与链表对应的数组整个数组所有的元素都存储在操作系统分配的一块内存中。访问该数组内的元素时,根据数组元素数据...原创 2019-05-09 21:39:12 · 154 阅读 · 0 评论 -
递归和回溯
递归任何调用自身的函数称为递归。递归的要点在于,递归函数调用自身去解决一个规模比原始问题要小一些的问题。递归函数的格式函数不在递归地情况称作基本情形(base case,也称基本情况)。函数调用自身来执行子任务的情况就称作递归情形(recursive case)。if (判断是否为基本情形) return 该基本情形时的函数值else if (判断是否为另一种基本情形) ...原创 2019-05-09 20:01:05 · 201 阅读 · 0 评论 -
树的高度,深度,层数
转自:https://blog.youkuaiyun.com/bwh12398/article/details/78011819 申明:本文高度,深度基数为1,但是在《数据结构与算法分析:java语言描述》这本书上,高度,深度的基数为0;两种记法都没有错,都可以用来描述树的性质,只需要标注(>0)或者(>=0)做一个区分和解释即可节点n的高度 : n节点到叶子节点所有路径上包含...转载 2019-04-22 19:27:53 · 433 阅读 · 0 评论 -
八大排序算法
转自:https://blog.youkuaiyun.com/hguisu/article/details/7776068/概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 &...转载 2019-04-22 16:24:44 · 209 阅读 · 0 评论 -
201812CCF-CCSP竞赛:第1题-小明上学
题目背景 小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。 京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。假设红绿灯被设定为红灯 r 秒,黄灯 y 秒,绿灯 g 秒,那么从 0 时刻起,[0,r) 秒内亮红...原创 2019-03-14 11:12:23 · 2636 阅读 · 0 评论 -
LeetCode:寻找数组的中心索引
寻找数组的中心索引给定一个整数类型的数组 nums,请编写一个能够返回数组**“中心索引”**的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入: nums = [1, 7, 3, 6, 5, 6]输出: 3解释:...原创 2019-09-17 20:17:57 · 106 阅读 · 0 评论 -
栈的深究
栈的数组实现,栈中数组的容量控制,栈的迭代原创 2017-12-29 17:22:04 · 161 阅读 · 0 评论 -
二叉查找与递归的结合
我们都很熟悉递归与二叉查找,递归的代码普遍都很整洁,易懂,而在算法中使用递归可以更好的理解算法,看到一段经典的代码,如下 public class digui { public static void main(String[] args) { int[] a= {9,5,5,3,6}; System.out.println(rank(a, 6));原创 2017-12-28 11:07:33 · 229 阅读 · 0 评论