网站规划书市场分析广告公司图片
目录
一、罗马字符转数字
二、二叉树的右视图
三、sql-查询结果的质量和占比
一、罗马字符转数字
首先把两个字符组成一个数字做一下单独判断
然后就是单个字符转数字
public int romanToInt(String s) {int sum = 0;char[] ch = s.toCharArray();int i = 0;while(i < ch.length){if(i+1 < ch.length && ch[i] == 'I' && (ch[i+1] == 'V' || ch[i+1] == 'X')){sum += getVal("" + ch[i] + ch[i+1]);i++;} else if(i+1 < ch.length && ch[i] == 'X' && (ch[i+1] == 'L' || ch[i+1] == 'C')){sum += getVal("" + ch[i] + ch[i+1]);i++;} else if(i+1 < ch.length && ch[i] == 'C' && (ch[i+1] == 'D' || ch[i+1] == 'M')){sum += getVal("" + ch[i] + ch[i+1]);i++;} else {sum += getVal("" + ch[i]);}i++;}return sum;}public int getVal(String str){if(str.equals("I")){return 1;} else if(str.equals("V")){return 5;} else if(str.equals("X")){return 10;} else if(str.equals("L")){return 50;} else if(str.equals("C")){return 100;} else if(str.equals("D")){return 500;} else if(str.equals("M")){return 1000;} else if(str.equals("IV")){return 4;} else if(str.equals("IX")){return 9;} else if(str.equals("XL")){return 40;} else if(str.equals("XC")){return 90;} else if(str.equals("CD")){return 400;} else if(str.equals("CM")){return 900;}return -1;}
二、二叉树的右视图
对二叉树进行层序遍历
将每一层最右边的值进行记录
public List<Integer> rightSideView(TreeNode root) {Queue<TreeNode> queue = new LinkedList<>();if(root != null){queue.offer(root);}List<Integer> ret = new ArrayList<>();while(!queue.isEmpty()){List<Integer> temp = new ArrayList<>();int n = queue.size();while(n-- != 0){TreeNode now = queue.poll();temp.add(now.val);if(now.left != null){queue.offer(now.left);}if(now.right != null){queue.offer(now.right);}}ret.add(temp.get(temp.size()-1));}return ret;}
三、sql-查询结果的质量和占比
round(),四舍五入
count 不会统计null的值,这里可以使用if(true,a,b)来进行统计小于3的个数
select query_name,
round(avg(rating/position),2) as 'quality',
round(count(if(rating<3,1,null))*100/count(*),2) as 'poor_query_percentage'
from Queries
group by query_name;