
算法
文章平均质量分 62
培金
目前从事android软件开发工作。承接android应用开发。合作请邮件:lingbjecit@163.com
展开
-
插入排序回顾
前言最近学习了排序算法,参考书籍《数据结构与算法分析-java版本》。总结一下,刷一下存在感,另外提高在csdn上的排名。含义理解本篇博客讲述“插入排序”,什么叫做“插入”呢?怎样解释,才能契合插入排序的实际真谛。我想,别人插你队的时候,应该更合适,所以“插入”等同与“插队”更合适。实例讲解假设有下面的一个数组:{23,2,4,6,90,0,56}23在第一个位...原创 2018-05-04 12:29:20 · 180 阅读 · 0 评论 -
二叉查找平衡树---再平衡旋转
public class AvlTree { public AvlTree() { } public static class AvlNode { int val; AvlNode left; AvlNode right; int height; AvlNode(int e) { val = e; } AvlNode(int e, AvlNode ...原创 2019-04-03 15:45:38 · 187 阅读 · 0 评论 -
Leetcode 1012. 十进制整数的反码
题目每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 “101”,11 可以用二进制 “1011” 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 “101” 的二进制反码为 “010”。给定十进制数 N,返回其二进制表示的反码所对应的十进制整数。示例 1:输入:5输...原创 2019-03-23 13:27:25 · 426 阅读 · 0 评论 -
Leetcode 118. 杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]解题1.首先,们知道必须要一个numRows的循环。其次是内层循环。本题的时间复杂度O(n^2)。空间复杂度亦同。...原创 2019-03-18 18:16:00 · 236 阅读 · 0 评论 -
汉明重量
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例 2:输入:0000000000000000000000001000000...原创 2019-11-04 09:48:55 · 713 阅读 · 0 评论 -
补码知识
在计算机二进制系统中,正数&负数的区别在最高位,最高位0表示正数,为1表示负数。计算机做加减乘除运算时,最终是转化为加法运算。比如 3-8 = 3+(-8);正数的补码是本身。负数的补码是将其对应的正数位按位取反再加1.-8:0001000->1110111->1111000->111110003-8:11111000+00000011->1111101...原创 2019-03-21 10:37:16 · 801 阅读 · 0 评论 -
Leetcode 204. 计数质数
题目统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。解法&思路题目内容很简单,但是里面要掌握的知识点非常多。最优解法非常的巧妙。何谓质数。一个数除了1和它本身能够整除它,其它数都不能够整除它。这个可以肯定,大于它的数更加不能整除它。那么我们可以据何谓整除;假设2个正整数M...原创 2019-03-20 17:58:31 · 245 阅读 · 0 评论 -
Leetcode 112. 路径总和
题目给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 ...原创 2019-03-15 19:27:55 · 212 阅读 · 0 评论 -
Leetcode 38. 报数
题目报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1112112111112211 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。给定一个正整数 n(1 ≤ n ...原创 2019-03-15 17:53:50 · 141 阅读 · 0 评论 -
Leetcode 66. 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。重点...原创 2019-03-14 18:57:19 · 141 阅读 · 0 评论 -
leetcode 83. 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3解法代码示例/** * Definition for singly-linked原创 2019-03-14 18:44:20 · 126 阅读 · 0 评论 -
五子棋---五子相连判断
前言最近在做一个五子棋游戏,发现其中的五子相连判断算法非常的好,所以总结出来给大家。算法思路我们大家都玩过五子棋,棋子在4方向直线上有五个子,那么就表示玩家得胜。4方向分别是横向,纵向,斜向上和斜向下。 如果棋手每下一步棋,我们遍历已经下的棋子,判断其4个方向是否够5个棋子,那么这样的效率是不高的。因为我们在下棋之前,那么我们可以知道,棋盘上一定没有5子相连,所以我们就不用去判断...原创 2018-08-15 15:55:00 · 8527 阅读 · 0 评论 -
Leetcode 617. 合并二叉树
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 1...原创 2019-04-09 17:46:31 · 120 阅读 · 0 评论