java学习(一)
字符串字符串的常用方法1String str;
去掉左右多余空格str.trim()12str.trim();// 方法执行后得到一个新的字符串,这个新的字符串左右没有空格
查找字符串 indexOf()1234str.indexOf(String string);// 返回文本中第一个匹配到索引值,return -1说明不匹配str.indexOf(String string, int start)// 从start位置开始查找
1234String str = "sdfsd java sdfdsfsdf java fsdfsdf java";int index = str.indexOf("java");int result = str.indexOf("java", index + 4);// 查找第二个要查找的字符串;
字符串截取 substring()12345str.substring(int start ...
动态规划(二)
打家劫舍(一)题目
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。1234示例1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。
12345示例2:输入:[2,7,9,3,1]输出:12解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。偷窃到的最高金额 = 2 + 9 + 1 = 12 。
解题思路
状态转移方程
假设一排房屋rooms(房间数>2),从最右侧开始考虑,对于第i+1间房屋rooms[i]只有两种状态:
偷窃:最近的下一间可偷窃的房间就是[i-2] ...
动态规划(一)
动态规划Those who do not remember the past are condemned to repeat it.
理论
特点
重复子问题:需要记录之前的计算结果;
最优子结构:不同规模之间的关系;
后无效性:只记录阶段结果而不关心这个结果是怎么来的;
思路方向
自顶向下:递归+记忆化;
自底向上:递推求解。
状态转移方程
将当前问题分解为几个小问题,这些小问题的最优解构成当前问题的最优解;
初始化
输出
有时题目的解并不是最后一个状态
考虑是否有可优化空间
例题最长回文子串题目:给你一个字符串 s,找到 s 中最长的回文子串。
1234示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。
123示例 2:输入:s = "accacc"输出:"ccacc"
解题思路:
状态转移方程
对于一个长度大于2的子串而言,如果他是回文串,那么它的首尾字符相同且去掉首尾两个字符,它任然是个回文串。 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment