📅  最后修改于: 2023-12-03 14:41:14.249000             🧑  作者: Mango
在这篇文章中,我们将分享一个Flipkart软件工程师的面试经验。我们将看到面试者如何通过技术、思维、组织与沟通四个方面,成功通过面试。
//给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
//示例 1:
//输入: s = "abcabcbb"
//输出: 3
//解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
class Solution {
public int lengthOfLongestSubstring(String s) {
int n = s.length(), ans = 0;
int[] index = new int[128]; // current index of character
// try to extend the range [i, j]
for (int j = 0, i = 0; j < n; j++) {
i = Math.max(index[s.charAt(j)], i);
ans = Math.max(ans, j - i + 1);
index[s.charAt(j)] = j + 1;
}
return ans;
}
}
候选人应该了解操作系统的基础知识,如进程、进程间通信、线程、信号量等等,并能够用自己的话描述清楚。
面试者应该具备数据库方面的知识,包括 SQL 查询、数据分析等。
-- 查询员工薪水比部门平均薪水高的员工和部门信息
SELECT e.employee_name, e.salary, d.department_name, d.location
FROM employees e
JOIN departments d ON e.department_id = d.department_id
WHERE e.salary > (SELECT AVG(salary) FROM employees WHERE department_id = e.department_id)
ORDER BY d.department_id, e.salary DESC;
//给定一个未排序的整数数组 nums ,找出其中没有出现的最小的正整数。
//示例 1:
//输入:nums = [1,2,0]
//输出:3
class Solution {
public int firstMissingPositive(int[] nums) {
int n = nums.length;
for (int i = 0; i < n; ++i) {
if (nums[i] <= 0) {
nums[i] = n + 1;
}
}
for (int i = 0; i < n; ++i) {
int num = Math.abs(nums[i]);
if (num <= n) {
nums[num - 1] = -Math.abs(nums[num - 1]);
}
}
for (int i = 0; i < n; ++i) {
if (nums[i] > 0) {
return i + 1;
}
}
return n + 1;
}
}
面试官通常会询问候选人的发布过的项目,并询问候选人为什么如此设计。候选人应该尽可能表达自己的方案与迭代过程,并说出自己项目中的成功与失败。
在面试中解决问题的能力很重要,因此面试者应该对面试官所问问题的每一个方面进行分析,并提供有关的解决方案。
候选人应该考虑对当前问题的面试官感兴趣的方面进行深入的研究,并扩大对这个行业的认识。
# 小区监控
import cv2
import numpy as np
VIBE = cv2.bgsegm.createBackgroundSubtractorMOG()
video = cv2.VideoCapture("video.mp4")
while True:
ret, frame = video.read()
if not ret:
break
fgmask = VIBE.apply(frame)
fgmask[fgmask < 255.0] = 0
fgmask = cv2.dilate(fgmask, None, iterations=2)
im2, contours, hierarchy = cv2.findContours(
fgmask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE
)
if contours:
for c in contours:
x, y, w, h = cv2.boundingRect(c)
if w > 80 and h > 80:
cv2.rectangle(
frame, (x, y), (x + w, y + h), color=(0, 0, 255), thickness=2
)
cv2.putText(
frame,
"Person Detected",
(x, y - 5),
cv2.FONT_HERSHEY_SIMPLEX,
1,
(0, 0, 255),
thickness=2,
)
cv2.imshow("real-time video", frame)
if cv2.waitKey(1) & 0xff == 27:
break
video.release()
cv2.destroyAllWindows()
候选人应该尝试以一种很容易理解的方式与面试官进行沟通,并尽可能的做到地道与流畅。
在面试过程中,候选人应该向面试官证明自己对所研究领域的热情,并向面试官提出有意义的问题。
面试者需要维护清晰,有组织的思维,将想法与解释结构化,以便面试官更好地理解。
候选人需要在回答问题时结合自己的申请并保持自信和积极。
通过阅读本文,你已经了解了这个Flipkart软件工程师的面试经验。如果你正在寻找一份工作,不妨从中吸取经验,提高自己的面试技能。