摘要: 思路:找规律 数字范围 数字位数 数字数量 数位数量 0-9 1 10 10 10-99 2 90 180 100-999 3 900 2700 …… …… …… …… start-end digit 9*start 9*start*digit 由此,要得到第n位对应的数字,需要分三步: 1. 确定 阅读全文
posted @ 2021-02-28 23:55 zjcfrancis 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 思路:层次遍历 序列化: 层次遍历二叉树,注意输出符合题目要求的格式 反序列化: 初始化时除去序列化数组的左右中括号,除去逗号,将其转换成一个 String 数组 这样二叉树中每个节点的索引即为数组的下标 按序列化层次遍历的思路,一层一层构建原二叉树。 代码: 序列化与反序列化的时间复杂度均为O(n 阅读全文
posted @ 2021-02-28 23:18 zjcfrancis 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 思路:动态规划 对于数组B中元素B[i],它的值等于A数组中 i 左侧元素乘积,与 i 右侧元素乘积 的乘积 画表可知: B[1]= 1* A[2]* A[3]* A[4] B[2]= A[1]* 1* A[3]* A[4] B[3]= A[1]* A[2]* 1* A[4] B[4]= A[1]* 阅读全文
posted @ 2021-02-28 18:03 zjcfrancis 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 思路1:滑动窗口 设置一个滑动窗口与一个HashSet,用set来维护一个不重复的窗口。 即当窗口右边界遇到窗口内重复的字符时,左边界移动至右边界处。 res保存最大窗口大小,即为最长无重复字符的字串长度。 代码: class Solution { public int lengthOfLonges 阅读全文
posted @ 2021-02-28 17:01 zjcfrancis 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 思路: 设置两个布尔变量 increase、decrease。 当数组中存在 A[i] < A[j]时,increase = true; 当数组中存在 A[i] > A[j]时,decrease = true; 如果A数组是单调数组,则 increase和decrease中只有一个为true,或都不 阅读全文
posted @ 2021-02-28 14:53 zjcfrancis 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 思路:动态规划 对于一个数字x1x2……xi,它的翻译方法 f( i ) 可以分为两种情况,xi-1和xi单独翻译和整体翻译。 当xi-1和xi单独翻译时,f( i ) = f ( i - 1 ) + f( i - 2 ) 当xi-1和xi整体翻译时,f( i ) = f( i - 1 ) 设动态规 阅读全文
posted @ 2021-02-28 05:02 zjcfrancis 阅读(49) 评论(0) 推荐(0) 编辑