leetcode

【leetcode编程题目354】俄罗斯套娃

丶灬走出姿态 提交于 2020-05-04 04:34:05
来自 https://leetcode.com/problems/russian-doll-envelopes/ You have a number of envelopes with widths and heights given as a pair of integers (w, h) . One envelope can fit into another if and only if both the width and height of one envelope is greater than the width and height of the other envelope. What is the maximum number of envelopes can you Russian doll? (put one inside other) Example: Given envelopes = [[5,4],[6,4],[6,7],[2,3]] , the maximum number of envelopes you can Russian doll is 3 ([2,3] => [5,4] => [6,7]). 这个题目是最长子序列的变形;最长子序列可以参考https://en.wikipedia.org/wiki/Longest_increasing

[leetcode] Regular Expression Matching

落花浮王杯 提交于 2020-05-03 23:47:11
Implement regular expression matching with support for'.'and'*'. '.' Matches any single character. '*' Matches zero or more of the preceding element. The matching should cover the entire input string (not partial). The function prototype should be: bool isMatch(const char *s, const char *p) Some examples: isMatch("aa","a") → false isMatch("aa","aa") → true isMatch("aaa","aa") → false isMatch("aa", "a*") → true isMatch("aa", ".*") → true isMatch("ab", ".*") → true isMatch("aab", "c*a*b") → true https://oj.leetcode.com/problems/regular-expression-matching/ 思路1:递归。根据下一个字符是否是'*'分情况判断。 如果p的下一个字符不是'

leetcode

南楼画角 提交于 2020-04-25 08:15:28
找最长公共前缀,Longest Common Prefix,自己写的小算法,并吸取他人的精华进行改进,直接上代码,第一次写难免会有疏漏,还望大家指正 #include<iostream> #include<string> #include<vector> using namespace std; //第10题:找最长公共前缀,Longest Common Prefix //abcd //ab //abjklg //输出:ab //自己的思路:从第一个串的第一个字符开始匹配,后面的串与第一串进行匹配。如果都能匹配,则第一个串即为最长前缀,若不行,则从不行的那个字符直接推出循环 //原始版本:设置flag和flag1,flag用于确定哪个字符可以加入到最长匹配字符串中,flag1用于当遇到不能匹配的串时来结束外层循环 string longestCommonPrefixpre(vector<string>& strs) { int i,j,flag=0,flag1=0; string com; if(strs.size()==0) //一开始没有通过就是因为没有这行,当strs为空的时候没有考虑进去 return com; for(i=0;i<strs[0].size();i++) { flag=0; for(j=0;j<strs.size();j++) { if(strs[j][i]

LeetCode:Number of 1 Bits

大兔子大兔子 提交于 2020-04-23 07:33:32
1、题目名称 Number of 1 Bits(整数的汉明重量) 2、题目地址 https://leetcode.com/problems/number-of-1-bits/ 3、题目内容 英文:Write a function that takes an unsigned integer and returns the number of ’1' bits it has. 中文:写一个函数,输入一个无符号整数,返回其中值为1的比特位的个数(这个值也被称为数字汉明重量) 例如,32位整型数字11的可以用二进制数字“00000000000000000000000000001011”表示,它的汉明重量就是3。 4、解题方法 本问题可以使用位运算来解决。每次循环都将数字右移一位,然后观察移位后的数字是奇数还是偶数,如果是奇数说明最后一位是1,否则说明最后一位是0。当最后输入的数字经过不断的右移变为0时,结束循环。 一开始我写的代码是这样的: /** * 功能说明:LeetCode 191 - Number of 1 Bits * 开发人员:Tsybius2014 * 开发时间:2015年8月12日 */ public class Solution { /** * 求数字的汉明重量 * @param n 数字 * @return 汉明重量 */ public int

LeetCode:Pascal&apos;s Triangle II

自闭症网瘾萝莉.ら 提交于 2020-04-22 04:56:06
1、题目名称 Pascal's Triangle II(帕斯卡三角形2) 2、题目地址 https://leetcode.com/problems/pascals-triangle-ii/ 3、题目内容 英文:Given an index k, return the kth row of the Pascal's triangle. 中文:给出行数k,返回帕斯卡三角形的第k行 例如,k=3时,返回[1,3,3,1] 4、解题方法1 帕斯卡三角形也叫杨辉三角形,在LeetCode第118题( Pascal's Triangle )中, 已经实现了按杨辉三角形的定义自上到下生成各列 。这个方法也可以用于求指定行。 一段实现此方法的Java代码如下: import java.util.ArrayList; import java.util.List; /** * 功能说明:LeetCode 119 - Pascal's Triangle II * 开发人员:Tsybius2014 * 开发时间:2015年8月14日 */ public class Solution { /** * 获取帕斯卡三角形的指定行 * @param rowIndex 行数 * @return */ public List<Integer> getRow(int rowIndex) { if (rowIndex <

LeetCode:Pascal&apos;s Triangle

不打扰是莪最后的温柔 提交于 2020-04-19 08:52:15
1、题目名称 Pascal's Triangle(帕斯卡三角形) 2、题目地址 https://leetcode.com/problems/pascals-triangle/ 3、题目内容 英文:Given numRows, generate the first numRows of Pascal's triangle. 中文:给出行数numRows,生成前numRows行的帕斯卡三角形 例如,当numRows为5时,生成的三角形是这样的: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 4、解题方法 帕斯卡三角形也叫杨辉三角形,我们可以利用该三角形的性质来逐行生成这个三角形,即:“每行的第一个和最后一个数字是1,其余数字等于前一行左上与右上两数字之和”。 一段实现本算法的Java代码如下: import java.util.ArrayList; import java.util.List; /** * 功能说明:LeetCode 118 - Pascal's Triangle * 开发人员:Tsybius2014 * 开发时间:2015年8月14日 */ public class Solution { /** * 帕斯卡三角形 * @param numRows 行数 * @return */ public List<List

LeetCode:Valid Number

徘徊边缘 提交于 2020-04-16 08:15:05
【推荐阅读】微服务还能火多久?>>> 1、题目名称 Valid Number(判断字符串中内容是否为数字) 2、题目地址 https://leetcode.com/problems/valid-number/ 3、题目内容 英文:Validate if a given string is numeric. 中文:给出一个字符串,检查这个字符串中内容是否是一个数字 例如:“0”、“ 0.1”、“2e10”是数字,“abc”、“1 a”不是数字 4、解题方法1 使用正则表达式检查字符串是一个比较好的方法,正则表达式的结构如下图所示: 对应的正则表达式为:^([+-])?((\d+)(\.)?(\d+)?|(\d+)?(\.)?(\d+))(e([+-])?(\d+))?$ Java代码如下,注意为了让编译器不把字符“\”识别为转义字符,须将“\”转换为“\\”使用。 import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 功能说明:LeetCode 65 - Valid Number * 开发人员:Tsybius2014 * 开发时间:2015年9月18日 */ public class Solution { /** * 判断指定字符串是否为数字 * @param s 字符串 * @return

LeetCode:Rank Scores

岁酱吖の 提交于 2020-04-14 00:52:28
【今日推荐】:为什么一到面试就懵逼!>>> 1、题目名称 Rank Scores(按分数排名次) 2、题目地址 https://leetcode.com/problems/rank-scores/ 3、题目内容 按分数排名次,如果两个Id的分数一样,那么他们的名次是一样的,排名从1开始。注意,每组分数的名次,都是上一组分数名次加一。 例如,表Scores中有这样一组数据: +----+-------+ | Id | Score | +----+-------+ | 1 | 3.50 | | 2 | 3.65 | | 3 | 4.00 | | 4 | 3.85 | | 5 | 4.00 | | 6 | 3.65 | +----+-------+ 排名后输出的数据应该为: +-------+------+ | Score | Rank | +-------+------+ | 4.00 | 1 | | 4.00 | 1 | | 3.85 | 2 | | 3.65 | 3 | | 3.65 | 3 | | 3.50 | 4 | +-------+------+ 4、初始化数据库脚本 在MySQL数据库中建立一个名为LEETCODE的数据库,用MySQL命令行中的source命令执行下面脚本: -- 执行脚本前必须建立名为LEETCODE的DATABASE USE LEETCODE;

LeetCode:Isomorphic Strings

一世执手 提交于 2020-04-12 12:15:23
1、题目名称 Isomorphic Strings(同构的字符串) 2、题目地址 https://leetcode.com/problems/isomorphic-strings/ 3、题目内容 英文: Given two strings s and t , determine if they are isomorphic. Two strings are isomorphic if the characters in s can be replaced to get t . All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself. 中文: 给出两个字符串s和t,确定它们是否同构。两个字符串是同构的充要条件是它们之间相同位置的字符存在一一对应关系可以相互替换。在字符串s中不存在两个不同的字符映射到t中同一个字符的情况,但一个字符可以映射到它自身。 例如:egg和add是同构的,foo和bar不是同构的,paper和title是同构的 4、解题方法1

【LeetCode】415 Add Strings (java实现)

旧街凉风 提交于 2020-04-12 11:52:31
原题链接 https://leetcode.com/problems/add-strings/ 原题 Given two non-negative numbers num1 and num2 represented as string, return the sum of num1 and num2. Note: The length of both num1 and num2 is < 5100. Both num1 and num2 contains only digits 0-9. Both num1 and num2 does not contain any leading zero. You must not use any built-in BigInteger library or convert the inputs to integer directly. 题目要求 题目叫“字符串相加”,给定两个非负的由字符串表示整数,求出它们的和。这里需要注意的是,num1和num2字符串的长度都小于5100,这是个很大的数字,肯定不能用int来计算。数字只包含0-9,也就是说没有负号,没有小数点等,完全当做整形来计算。不允许使用内建的大整形的库函数。 解法 实现一:思路比较简单,既然不能把字符串转为整形来计算,那就一个字符一个字符取出来相加,算好进位即可。 public