还记得4题,具体的题目记不清楚了,大致考察的东西还记得:
第一题:求矩阵的特征值 λ \lambda λ ( 0.7 0.4 0.3 0.6 ) \left (\begin{matrix} 0.7 & 0.4 \\ 0.3 & 0.6 \end{matrix} \right ) (0.70.30.40.6)`
岭回归即L2正则
一方面,由于添加了正则项,模型不仅仅考虑经验风险还考虑模型复杂度对模型的影响,所以模型的更不容易过拟合。因此模型的方差变小。 此时,结构风险 = 经验风险 + 正则项 正则项系数 λ \lambda λ越大,模型权重 ω 2 \omega^2 ω2的就会小。简单理解可以理解为模型变的更加简单,拟合能力变差,故模型的偏差变大。
此题应用线性规划解决: 由图可知,在A<B的情况下,所占面积是整体面积的3/4。所以 P = 3 / 4 P = 3/4 P=3/4
错误 : sum = ( 7 - 3 ) * (8 - 2) * (8 - 1) * 4 = 4 * 6 * 7 * 4 = 672 因为逆序考虑的时候再第三位和第二位的时候可能用了0,那么这个时候就不需要讨论在第一位的时候是否出现0了,不如先考虑第一位的概率,这样就不用讨论第二位和第三位是否出现了0的情况。 讨论:
如果在第二位、第三位没有出现0: 456*4 = 480如果第二位或者第三位出现了0:2*5*6*1*4 = 240共计720考虑从第一位考虑的话可以避免讨论的情况: 改正: sum= 6*6*5*4 = 720
有一个数据压缩算法:
A3 = AAA A02 = AA A11 = AAAAAAAAAAA A(BC)2 = ABCBC
如示例所示:要求接受N个长度不定的字符串,其中可能包括括号的多层嵌套,最后按其顺序解压输出。
package Interview; import java.util.ArrayList; import java.util.Scanner; public class Main { public static ArrayList<Integer> index = null; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String[] strs = new String[n]; int i = 0; while(i<n){ strs[i++] = sc.next(); } for(String str:strs){ index = new ArrayList<Integer>(); int cnt = 0; System.out.println(parse(str,cnt)); } } public static String parse(String str,int cnt){ int m = str.length(); for(int i = 0;i<str.length();i++){ if(str.charAt(i) == '('){ index.add(i); }else if( str.charAt(i) == ')'){ cnt ++; int pos = index.get(index.size()-1); index.remove(index.size()-1); String _str = str.substring(pos+1,i); String prfix = str.substring(0, pos); int num = 1; if( str.charAt(i+1) >= '0' && str.charAt(i+1) <= '9'){ int k = 0; while(i+k+1<str.length()&&str.charAt(i+k+1) >= '0' && str.charAt(i+k+1) <= '9'){ k++; } String strnum = str.substring(i+1, i+1+k); int p = 0; while(p<strnum.length() && strnum.charAt(p) == '0'){ p++; } strnum = strnum.substring(p); num = Integer.valueOf(strnum); i = i+k; } String tmp = ""; String px = ps2(_str); for( int j = 0;j<num;j++){ tmp +=px; } String end = str.substring(i+1); str = prfix + tmp + end; } } return ps2(str); } public static String ps2(String str){ int m = str.length(); StringBuffer sb = new StringBuffer(); String pif = ""; for(int i = 0;i<m-1;i++){ if(str.charAt(i+1) >= '0' && str.charAt(i+1) <= '9'){ int k = 0; while(i+k+1<m&&str.charAt(i+k+1) >= '0' && str.charAt(i+k+1) <= '9'){ k++; } String strnum = str.substring(i+1, i+1+k); int p = 0; while(strnum.charAt(p) == '0'){ p++; } strnum = strnum.substring(p); int num = Integer.valueOf(strnum); for( int j = 0;j<num;j++){ sb.append(str.charAt(i)); } i = i+k; }else { sb.append(str.charAt(i)); } } if(!(str.charAt(str.length()-1) >= '0' && str.charAt(str.length()-1) <='9')){ sb.append(str.charAt(str.length()-1)); } return sb.toString(); } }测试结果如下:
还是太弱鸡,程序本身并不难,却花了很长时间才调试出。