
数据结构和算法
moots_
取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣
展开
-
leetcode 160. 相交链表
编写一个程序,找到两个单链表相交的起始节点。例如,下面的两个链表:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3在节点 c1 开始相交。注意:如果两个链表没有交点,返回...原创 2018-07-29 10:52:41 · 130 阅读 · 0 评论 -
888. 公平的糖果交换 -java实现
爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 块糖的大小,B[j] 是鲍勃拥有的第 j 块糖的大小。因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。如果有多个...原创 2018-11-09 23:57:18 · 369 阅读 · 0 评论 -
697. 数组的度
给定一个非空且只包含非负数的整数数组 nums, 数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入: [1, 2, 2, 3, 1]输出: 2解释: 输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1], [1, ...原创 2018-11-06 23:43:14 · 376 阅读 · 0 评论 -
844. 比较含退格的字符串 (java实现)
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。提示:1 <= ...原创 2018-10-23 23:56:26 · 463 阅读 · 0 评论 -
594. 最长和谐子序列 java
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。示例 1:输入: [1,3,2,2,5,2,3,7]输出: 5原因: 最长的和谐数组是:[3,2,2,2,3].说明: 输入的数组长度最大不超过20,000.想来想去还是用了HashMap解决class Solution {...原创 2018-08-13 09:41:38 · 229 阅读 · 0 评论 -
476. 数字的补数
给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。 你可以假定二进制数不包含前导零位。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。...原创 2018-08-07 11:21:39 · 311 阅读 · 0 评论 -
Leetcode 458. Poor Pigs 可怜的小猪
题目:有1000只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在15分钟内死去。问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪?回答这个问题,并为下列的进阶问题编写一个通用算法。进阶:假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出“有毒”水桶?n只水...转载 2018-08-07 10:11:57 · 190 阅读 · 0 评论 -
leetcode 453. 最小移动次数使数组元素相等 Java实现
给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。示例:输入:[1,2,3]输出:3解释:只需要3次移动(注意每次移动会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]每次的最优解为把其余小于最大值的数都加一。相当于...原创 2018-08-07 09:36:06 · 840 阅读 · 0 评论 -
LeetCode 633. 平方数之和(java 实现)
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。示例1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5 示例2:输入: 3输出: Falseclass Solution { public boolean judgeSquareSum(int c) { for(int i...原创 2018-08-14 09:58:30 · 511 阅读 · 0 评论 -
628. 三个数的最大乘积
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意: 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。 class Solution {...原创 2018-08-14 09:49:00 · 224 阅读 · 0 评论 -
leetcode 437. 路径总和 III java实现
给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8...原创 2018-08-05 11:51:10 · 562 阅读 · 0 评论 -
LeetCode 206. 反转链表 递归解决
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?注意head是有值的class Solution { void Insert(ListNode head,ListNode p)...原创 2018-07-31 09:23:55 · 810 阅读 · 0 评论 -
leetcode 112. 路径总和 java解题
题目描述:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13...原创 2018-07-27 12:16:44 · 901 阅读 · 0 评论 -
leetcode 172. 阶乘后的零
给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。显然不能用阶乘后再统计的方法公式 Z=[N/5] + [N/5^2]+ ...该公式的[N/5]含义是在不大于N的阶乘中包含一个5的个数,就比如35里面,包含一个5的个数为5,10,15,20,..35 即 35/5=7个(里面有7个元素包含一个5),那当我们...原创 2018-07-29 12:55:10 · 520 阅读 · 0 评论 -
快速计算x的n次幂 -- 二分思想
原文地址:http://blog.youkuaiyun.com/morewindows/article/details/7174143计算x的n次幂最简单直接的方法就是相乘n次,很容易写出程序:[cpp] view plain copy //计算x^n 直接乘n次 by MoreWindows( http://blog.youkuaiyun.com/MoreWindows ) int po...转载 2019-02-11 22:26:44 · 2477 阅读 · 0 评论