leetcode
如此生活二十年
这个作者很懒,什么都没留下…
展开
-
目标和
给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。代码:class Solution {public: long long int ans=0; int findTarget...原创 2019-10-28 21:12:20 · 82 阅读 · 0 评论 -
七进制数
给定一个整数,将其转化为7进制,并以字符串形式输出。代码:class Solution {public: string convertToBase7(int num) { string ans; int flag=0; if(num==0) ans='0'; if(num<0) ...原创 2019-10-22 20:32:59 · 324 阅读 · 0 评论 -
丑数
编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数2, 3, 5的正整数。代码:class Solution {public: bool isUgly(int num) { if(num<1)return false;//0求余任何数为0,无限循环 while(num%2==0) num/=2; ...原创 2019-10-22 20:18:10 · 101 阅读 · 0 评论 -
2的幂
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。代码:class Solution {public: bool isPowerOfTwo(int n) { if(n>0&&(n&-n)==n) return true; else return false; }};...原创 2019-10-20 19:30:27 · 83 阅读 · 0 评论 -
跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。代码:class Solution {public: bool canJump(vector<int>& nums) { int k=0; for(int i=0;i<nums.si...原创 2019-10-20 18:45:14 · 95 阅读 · 0 评论 -
分发饼干
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj。如果 sj >= gi,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口值为正。一...原创 2019-10-20 17:26:17 · 63 阅读 · 0 评论 -
判断子序列
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。代码:cl...原创 2019-10-20 14:17:50 · 72 阅读 · 0 评论 -
柠檬水找零
在柠檬水摊上,每一杯柠檬水的售价为5美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回true,否则返回 false。代码:clas...原创 2019-10-20 14:11:40 · 369 阅读 · 0 评论 -
第 N 个泰波那契数
泰波那契序列Tn定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数n,请返回第 n 个泰波那契数Tn 的值。代码:class Solution {public: int tribonacci(int n) { vector <int>f(...原创 2019-10-19 12:11:05 · 209 阅读 · 0 评论 -
“气球” 的最大数量
给你一个字符串text,你需要使用 text 中的字母来拼凑尽可能多的单词"balloon"(气球)。字符串text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词"balloon"。代码:class Solution {public: int maxNumberOfBalloons(string s) { int ans,a=0,...原创 2019-10-19 11:49:23 · 148 阅读 · 0 评论 -
爬楼梯
假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。代码:class Solution {public: int climbStairs(int n) { int f[n+1]; if(n==1)return 1; if(n==2...原创 2019-10-19 10:31:02 · 79 阅读 · 0 评论 -
搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。代码:class Solution {public: int searchInsert(vector<int>& nums, int target) { int k=0; fo...原创 2019-10-19 09:54:27 · 101 阅读 · 0 评论 -
分割平衡字符串
在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的。给出一个平衡字符串s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。示例 1:输入:s = "RLRRLLRLRL"输出:4解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'。示例 2:...原创 2019-10-19 09:44:58 · 598 阅读 · 0 评论 -
整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−2^31, 2^31− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。代码:class Solution {public: int reverse(int x) { int rev = 0; w...原创 2019-10-19 09:03:51 · 82 阅读 · 0 评论 -
回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。代码:class Solution {public: bool isPalindrome(int x) { int y=x; long long int sum=0; if(y<0) return false; ...原创 2019-10-19 08:43:00 · 93 阅读 · 0 评论 -
复写零
给你一个长度固定的整数数组arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。要求:请对输入的数组 就地进行上述修改,不要从函数返回任何东西class Solution {public: void duplicateZeros(vector<int>& arr) { for(...原创 2019-10-18 22:36:16 · 103 阅读 · 0 评论 -
IP 地址无效化
给你一个有效的 IPv4 地址address,返回这个 IP 地址的无效化版本。所谓无效化IP 地址,其实就是用"[.]"代替了每个 "."。示例 1:输入:address = "1.1.1.1"输出:"1[.]1[.]1[.]1"示例 2:输入:address = "255.100.50.0"输出:"255[.]100[.]50[.]0"代码:...原创 2019-10-18 22:32:46 · 154 阅读 · 0 评论 -
猜数字
小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?class Solution {public: int game(vector<int>& guess, vector<int>& answer) { in...原创 2019-10-18 21:53:02 · 145 阅读 · 0 评论 -
两数之和
给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。代码:class Solution {public: vector<int> twoSum(vector<int>& nums, int ta...原创 2019-10-18 18:32:13 · 93 阅读 · 0 评论 -
编辑距离
给定两个单词word1 和word2,计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符 删除一个字符 替换一个字符代码:class Solution {public: int minDistance(string word1, string word2) { int m=word1.si...原创 2019-10-16 21:50:43 · 90 阅读 · 0 评论 -
零钱兑换
给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。思路:集合状态表示 dp[i][j] 表示由前i种硬币组成金额为j的方案数 状态计算 考虑dp[i][j]的最后一步 即第i种硬币选几个从而凑成金额j 假设选k个 k = 0,1,...,j/c[i] dp[i][j] = dp[i-1][j] + dp[i-1][j-...原创 2019-10-16 21:26:14 · 146 阅读 · 0 评论 -
最长上升子序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是[2,3,7,101],它的长度是 4class Solution {public: int lengthOfLIS(vector<int>& nums) { int n=nums.s...原创 2019-10-16 20:38:39 · 138 阅读 · 1 评论 -
打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃...原创 2019-10-16 20:10:11 · 94 阅读 · 0 评论 -
解码方法
一条包含字母A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释:它可以解码为 "AB"(1 2)或者 "L"(12)。示例2:输入: "226"输出: 3解释:它可以解码为 "BZ" (2...原创 2019-10-16 19:10:16 · 92 阅读 · 0 评论 -
不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m和 n 的值均不超过 100。代码:class Solu...原创 2019-10-15 21:55:51 · 139 阅读 · 1 评论 -
三角形最小路径和
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为11(即,2+3+5+1= 11)。代码:class Solution {public: int minimumTotal(vect...原创 2019-10-15 21:39:37 · 117 阅读 · 0 评论 -
最大子序和
给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。代码:class Solution {public: int maxSubArray(vector<int>& nums) { int dp[100010]; int ans=nums[0]; dp[0]=nu...原创 2019-10-15 12:45:32 · 69 阅读 · 0 评论