General Questions in a Coding Interview

技术面试中的常规问题

Posted by Eryn on November 13, 2019

1. 判断奇偶数

  • 考虑复数
  • 问input有什么情况
  • 考虑coding style 和 精简

i%2==1是平时判断奇数的常用方法,这个方法有个弊端就是当i为负数的时候,判断结果是错误的,因为在java中,%运算的结果和左操作数具有相同的符号。

改进的方法有两种

  • i%2!=0,这样即使是负的奇数也可以正确的判断
  • i&1!=0,奇数的最后一位总是1,这样和1的二进制格式向AND,结果一定是1,而正负位都被1二进制格式中的0 给AND掉了。在书中这是个推荐的方法
    两个方法一样快,因为JVM会将方法一优化成方法二

2. reverse a LinkedList

  • 问有没有环
  • 问node怎么定义

3. leetcode 39. combination sum

  • 可以重复吃?
  • 有相同的价格吗?
  • 顺序不同算作同一个组合吗?

generalized questions:

  • input, output
  • 说思路,可以问一下tc和sc
  • coding
  • test

    面试高频题

    Hashmap

  • 设计一个hash function