![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法刷题
兰因絮果.
持之以恒
展开
-
【LeetCode】将数组分成和相等的三个部分
问题给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1]) 就可以将数组三等分。思想如果数组的和...原创 2020-03-11 15:30:50 · 163 阅读 · 0 评论 -
【LeetCode】332.零钱兑换
问题给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。思想动态规划思想设F(n)为总额为n时凑成的最少的硬币数,F(0)=0推算公式为:F(0)=0,F(n)=min(F(n-coins[i]))+1代码class Solution { public int ...原创 2020-03-08 22:36:42 · 88 阅读 · 0 评论 -
【LeetCode】59.队列的最大值
问题请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1思想用LinkedList结构模拟队列,remove(0)表示出队,add()表示入队每一次push和pop对队列的最大值都会产生影响。1)p...原创 2020-03-07 13:42:04 · 163 阅读 · 0 评论 -
【LeetCode】45.和为s的连续正整数
问题输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。思想采用双指针。由于一开始并不知道数组的大小,所以先不初始化,利用LinkedList记录所有可能的情况,以start,end,start,end…的形式存储。数组的长度即为lis.size()/2。用sum记录当前start...原创 2020-03-06 19:15:23 · 155 阅读 · 0 评论 -
【LeetCode】1103分糖果Ⅱ
问题排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。重复上述过程(每次都比上一次多给...原创 2020-03-05 18:29:56 · 165 阅读 · 0 评论 -
【LeetCode】最长回文子串
问题给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。扩展中心法1、最长子串的长度可能是奇数,也可能是偶数个。所以我们需要选取一个字符或两个字符作为中心进行扩散2、找到关于中心对称的最长子字符串即为所求马拉车算法该算法改进了扩展中心算法(以下内容可能与原始算法有出入)。1、为了避免处理奇数长度和偶数长度,先对原字符串进行处理。在原字符串的基础上间...原创 2019-10-24 22:01:50 · 141 阅读 · 0 评论 -
【LeetCode】两数相加
题目给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。代码public ListNode addTwoNumbers(ListNode l1, ListNode l2) { in...原创 2019-10-20 21:34:17 · 86 阅读 · 0 评论 -
【剑指offer】面试题11:旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。思路:暴力解法就是遍历了,但是这样没有用到它是旋转数组这个特性。旋转数组应该是以最小元素为分界线,左边是一个非递减数组,右边也是一个非递减数组。若array[0]<array[array.length-1]的,则这个数组是一个没有经过旋转的非递减数组,...原创 2019-08-27 19:51:16 · 119 阅读 · 0 评论 -
【剑指offer】面试题8:二叉树的下一个节点
题干:给定一颗二叉树和其中一个节点,找出中序遍历的下一个节点。思路:根据中序遍历去查找,设置一个flag去标记已经遍历的结点是否是给定的结点。我在这里借用了自己之前写的类(参见添加链接描述),所以没有指向父结点的指针。代码如下:public BinaryTreeNode findNext(BinaryTree bTree , BinaryTreeNode target) { ...原创 2019-08-25 21:01:23 · 123 阅读 · 0 评论 -
【剑指offer】面试题7:重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。public TreeNode reConstructBinaryTree(int [] pre,int [] in) { //采用递归的思想 if(pre.length<=0||pre.length!=in.length) { ...原创 2019-08-23 20:05:12 · 184 阅读 · 0 评论