摘要: 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 costs[2] 美元。通行证允许数天无限制的旅行。 例如,如果我们在... 阅读全文
posted @ 2020-05-06 10:22 ~吹梦到西洲~ 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 可以用递归的方式去合并!!!!/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNod... 阅读全文
posted @ 2020-05-01 10:37 ~吹梦到西洲~ 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。 如果 n 是快乐数就返回 True ;不是,则返回 Fa 阅读全文
posted @ 2020-04-30 09:52 ~吹梦到西洲~ 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。如果不存在这样的下标 index,就请返回 -1。何为山脉数组?如果数组 A 是一个山脉数组的话,那它满足如下条件:首先,A.length >= 3其次,在 0 A[i+1] > ... > A[A.length - 1] 你将 不能直接... 阅读全文
posted @ 2020-04-29 09:43 ~吹梦到西洲~ 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2] 限制:2 singleNumbers(vector& nums)... 阅读全文
posted @ 2020-04-28 11:10 ~吹梦到西洲~ 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 本题我使用优先队列进行解决,每次拿出一个最小的元素即可,注意在push元素时,检查链表指针是否为空: struct Ele { int val; ListNode *ptr; bool operator r.val; } }; ListNode* mergeKLists(vector& lists) { ... 阅读全文
posted @ 2020-04-26 09:31 ~吹梦到西洲~ 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5在该题目中,可以采用分治的思想去求逆序对,如果一个元素比较大,那么他会比右侧的很多数都大,这样的话,我们可以直接统计他到底比右侧哪些数大,采用这种想法,我们可以使用归并排序对这个数组进行排序,并且在归并的过程中,直接统计左侧每一个... 阅读全文
posted @ 2020-04-24 09:05 ~吹梦到西洲~ 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 该题目是一道很坑的模拟题,题目描述如下所示:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有... 阅读全文
posted @ 2020-04-22 20:20 ~吹梦到西洲~ 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 rightSideView(TreeNode* root) { vector ans; if(root==NULL) return ans; stack> ... 阅读全文
posted @ 2020-04-22 08:53 ~吹梦到西洲~ 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 给你一个整数数组 nums 和一个整数 k。如果某个连续子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。在这道题目中,我首先想到的方法是将奇数数组的下标保留下来,之后根据乘法原理计算有多少个优美子数组即可,我的程序代码如下:#include #include using namespace std;int numberOfSubarray... 阅读全文
posted @ 2020-04-21 09:36 ~吹梦到西洲~ 阅读(164) 评论(0) 推荐(0) 编辑