机考碰到的点

  • 计算今天星期几
    int getDayOfWeek(int year, int month, int day) {
        if (month < 3) {
            month += 12;
            year--;
        }
        int h = (day + (13 * (month + 3)) / 5 + year + year / 4 - year 
                / 100 + year / 400) % 7;
        return h;
    }
    
  • 获取某行的全部的值,或者使用某个符号得到结果
      string s;
      while (getline(cin, s, ' ')) { // 注意 while 处理多个 case
          cout << s << endl;
      }
    
  • 碰到cpu占用比较高得情况怎么排查
    • 使用top命令查看cpu占比情况,得到进程的pid;
    • 使用ps -mp pid -o thread,tid,time查看该pid进程的cpu最大消耗的tid线程的情况;
    • 将线程tid转化为16禁进制,使用jstack pid | grep tid -A60打印该线程的前60行堆栈的信息。
    • 通过上面打印的信息找到代码。
  1. 获取整数每一位上的值:
     string itoa(int n) {
         string ans = "";
         while(n) {
             ans += (n%10 + '0');
             n = (n - n%10)/10;
         }
         return ans;
     }
    
  2. 哪些是不稳定的排序算法
    口诀: 一堆希尔快选(堆排序、希尔排序、快排、选择排序)
  3. 假设 A = 0x123456 ,在大端模式下首字节为?在小端模式下首字节为?
    • 注意A要放到地址从低到高的地址中。
    • 大端模式下,高放低,所以放下来还是这个顺序。
    • 小端模式下,低放高,所以放下来还是这个顺序相反。




8. unix系统是用的clone函数产生线程和进程的。
9. C/C++、Java和Go是编译型语言,javascript、python是解释型语言。
10.一定要看清题目中的重写和重载,两者有区别。

posted @ 2024-04-25 23:02  铜锣湾陈昊男  阅读(15)  评论(0)    收藏  举报