1.报数
报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:
1. 1 2. 11 3. 21 4. 1211 5. 111221
1
被读作 "one 1"
("一个一"
) , 即 11
。11
被读作 "two 1s"
("两个一"
), 即 21
。21
被读作 "one 2"
, "one 1"
("一个二"
, "一个一"
) , 即 1211
。
给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。
注意:整数顺序将表示为一个字符串。
示例 1: 输入: 1 输出: "1" 示例 2: 输入: 4 输出: "1211"
java
class Solution { public String countAndSay(int n) { if(n==0) return ""; if(n==1) return "1"; String s = "1"; for(int i=2;i<=n;i++){ s=backStr(s); } return s; } public String backStr(String s){ StringBuilder sb = new StringBuilder(); char c = s.charAt(0); int count=1; int i=1; for(;i<s.length();i++){ if(c==s.charAt(i)){ count++; }else{ sb.append(count).append(c); c = s.charAt(i); count=1; } } if(count>0){ sb.append(count).append(c); } return sb.toString(); } }
php
class Solution { /** * @param Integer $n * @return String */ public function countAndSay($n) { if ($n == 0) return ""; if ($n == 1) return "1"; $s = "1"; for ($i = 2; $i <= $n; $i++) { $s = $this->backStr($s); } return $s; } public function backStr($s) { $rs = ""; $k = 1; $c = $s[0]; for ($i = 1; $i < strlen($s); $i++) { if ($s[$i] == $c) { $k++; } else { $rs .= $k . $c; $c = $s[$i]; $k = 1; } } if($k>0){ $rs .= $k . $c; } return $rs; } }
2.最大子序和
给定一个整数数组 nums
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
java
class Solution { public int maxSubArray(int[] nums) { int sum = 0; int rs = nums[0]; for(int n:nums){ if(sum>0){ sum+=n; }else{ sum = n; } rs = Math.max(rs,sum); } return rs; } }
php
class Solution { /** * @param Integer[] $nums * @return Integer */ function maxSubArray($nums) { $sum = 0; $rs = $nums[0]; foreach ($nums as $key => $value) { if($sum>0){ $sum+=$value; }else{ $sum = $value; } $rs = max($rs,$sum); } return $rs; } }
3.最后一个单词的长度
给定一个仅包含大小写字母和空格 ‘ ‘
的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例:
输入: "Hello World" 输出: 5
java
class Solution { public int lengthOfLastWord(String s) { int len = 0; boolean isLetter = false; char[] arr = s.toCharArray(); for(int i =arr.length-1;i>=0;i--){ if(arr[i]==‘ ‘){ if(!isLetter){ continue; } break; }else{ isLetter = true; len++; } } return len; } }
php
class Solution { /** * @param String $s * @return Integer */ function lengthOfLastWord($s) { $len = 0; $s = rtrim($s); if(!empty($s)){ for($i=strlen($s)-1;$i>=0;$i--){ if($s[$i]!=‘ ‘){ $len++; }else{ break; } } } return $len; } }
原文:https://www.cnblogs.com/baby123/p/10880882.html