Heim > häufiges Problem > Mehrere Fragen, um festzustellen, ob Sie Byte eingeben können

Mehrere Fragen, um festzustellen, ob Sie Byte eingeben können

Freigeben: 2023-08-25 15:48:00
nach vorne
860 Leute haben es durchsucht

1 Stellenbeschreibung

  • Verantwortlich für das Design und die Entwicklung von Sicherheitssystemen und -produkten für die Geschäftsbereiche von ByteDance (einschließlich Toutiao, Douyin, Huoshan usw.)
  • Verbesserung der Sicherheitsfunktionen automatisierter Tools innerhalb die Plattform
  • Verantwortlich für das Design und die Entwicklung allgemeiner Sicherheitsmodule und -komponenten für Toutiao, Douyin, Huoshan und andere Produkte

2 Jobanforderungen

  1. Bachelor-Abschluss oder höher
  2. Kompetent in Linux/Mac/Windows-Plattformen Verschiedene Entwicklungsfähigkeiten
  3. Beherrscht eine oder mehrere der folgenden Sprachen, Java/Python / Go / C++ usw.
  4. Vertraut mit gängigen Algorithmen und Datenstrukturen, vertraut mit Netzwerkprogrammierung, Multithread-Programmiertechnologie
  5. Gute Fähigkeit, neues Wissen zu erlernen und anzuwenden, mit guten Analyse- und Problemlösungsfähigkeiten
  6. Guten Teamgeist und proaktives Kommunikationsbewusstsein haben

Extrapunkte

  1. Erwünscht ist ein Hintergrund in der Entwicklung von Sicherheitsprodukten.
  2. Umfassendes Wissen über Sicherheitsentwicklung, Sicherheitstests, Schwachstellenerkennung und andere Sicherheitskenntnisse Arbeitsplatz
  3. Danach sagte er

Sie sollten Bytes Interviewprozess verstehen, oder?

Mein Freund war verwirrt, weil er noch nie zuvor an Bytes Interview teilgenommen hatte, und fragte: Was ist der Ablauf? Das ist das erste Mal, dass ich an Bytes Interview teilnehme.

Der Interviewer antwortete: Lass uns zuerst ein paar Algorithmusfragen beantworten. Anscheinend steht in Ihrem Lebenslauf, dass Sie viele knifflige Fragen gestellt haben, also schreiben wir als Vorspeise eine einfache Frage.

Dann begann der Interviewer, Fragen zu stellen.

Mein Freund (der schon einmal gehört hat, dass die Fragen zum Byte-Algorithmus nicht einfach sind) dachte sich Was zum Teufel, deine einfachen Fragen sind doch nicht besonders schwierig, oder? 3.1 Programmierfrage 1 ist so prägnant wie möglich.

Freund

Ich habe diese Art von Frage schon lange nicht mehr beantwortet, Ich habe nicht klar gedacht

, Die Operation war so wild wie ein Tiger

, was mich dazu veranlasste, es nicht zu tun. Das Problem ist der Mangel an Details.

Ideen zur Problemlösung (hauptsächlich Wissenspunkte untersuchen wie:) 1. Implementierung der Atoi-Funktion zum Konvertieren von Zeichenfolgen; 3. Implementierung der Ganzzahl-zu-String-Funktion itoa. Eine scheinbar einfache Grundfrage, aber sie untersucht viele Dinge und erfordert

die Übernahme des Gedankens „Teile und herrsche“ .

Mein Freund sagte dem Interviewer:

Normalerweise bürste ich Leetcode, aber plötzlich fühle ich mich unwohl, wenn ich solche Fragen schreibe.

Der Interviewer antwortete:

Dann schauen wir uns eine ähnliche Frage an, die sehr schwer zu beantworten ist.

Der Interviewer begann, Fragen zu stellen.

3.2 面试题二

C++
typedef struct LinkListNode {
  int value;
  struct LinkListNode* left;
  struct LinkListNode* right;
} LN, *PLN;

bool IsBranch(PLN root, int *nodes, int length)
   1
  / \
 2   3
    / \
   4   5
      / \
     6   7
     
1 T
0 F
2, 3 F
1, 2, 3 T
1, 3, 5, 6 T
6, 5, 3, 1 T
Nach dem Login kopieren

面试官提示

面试官出完题之后,笑了笑说提示一下哈,本题可以找规律

朋友

做了一段时间之后,大部分写出来了,但是还是有些细节没考虑好。

解题思路

将这颗树看成一个族谱,如果输入的是一颗子树的话,必须要有父亲节点,比如 1, 3, 6,由于 6 没有父亲节点,所以输出肯定是 F;如果只有兄弟节点的话,同样输出也是 F。

面试官问 你刷题的时候,最擅长刷哪种类型的题目,数组 or 链表 or 二叉树 or 排序 or...?

朋友一想,最近自己刷 链表 的题目比较多,递归、迭代以及增加虚拟头节点等等解法都掌握了,而且听了慕课网 liuyubobo 老师的算法课中的链表部分,于是自豪地说 链表

面试官说 那就看看链表的算法题吧

朋友露出笑容问道 面试官,你不会出一道 hard 的链表题吧?

面试官哈哈大笑,答道 我还是有节操的,不会坑你的,不过如果你通过了这一面,下一面的算法题估计比较难

说完面试官出题了。

3.3 面试题三

给定一个单链表,在链表中把 L 个节点到 R 个节点这一部分进行反转。

示例1:
输入
[1, 2, 3, 4, 5]  1, 3
输出
{3, 2, 1, 4, 5}
Nach dem Login kopieren

朋友一看,面露喜色,这么简单的,而且这不跟力扣中某道题类似嘛?

面试官好像看出来啥了,笑着问 你如果做过这道题的话,你就说做过,我再给你换道题

朋友答道 确实做过,哈哈。

面试官开始换题(出题)。

3.4 面试题四

将一个链表 m 位置到 n 位置之间的区间反转,要求时间复杂度,空间复杂度。

例如:
给出的链表为 1->2->3->4->5->NULL,返回 1->4->3->2->5->NULL.

注意:
给出的满足一下条件:
1 ≤ m ≤ n ≤ 链表长度。
Nach dem Login kopieren


朋友一看,笑了,心想这不就是 leetcode 92. 反转链表 II 的原题嘛?于是乎很诚实地跟面试官说 这题我做过

面试官面露微笑,说 继续换题,不过不用担心,我不坑你,做一道合并两个排序链表的题

朋友听到 合并两个排序数组心中一顿窃喜,这不还是 leetcode 原题嘛?

3.5 面试题五

合并排序数组
typedef struct LinkListNode {
  int value;
  struct LinkListNode *next;
}LN, *PLN;

示例:
listA 升序(1, 3, 5, 7, 9)
listB 降序(8, 6, 4, 2, 0)
返回:升序(0, 9)
PLN mergeLinkList(PLN listA, PLN listB)
Nach dem Login kopieren

面试官果真不坑人,笑着说我提示一下哈 为了简单一点,这道题你可以不用考虑这两个链表中有相同值得节点

朋友一想,这不简单嘛,力扣中已经刷过原题(合并两个已升序排列的链表),这道题只需要 把链表 B 反转一下,这是链表 B 就有序了,这样不就跟力扣的原题完全一毛一样了嘛,心中一顿窃喜,于是刷刷刷地写完了。

面试官看了看,说 如果链表 B 中的最后一个节点的值都大于链表 A 的最后一个节点的值呢?如果链表 B 中的第一个节点的值都小于链表 A 的第一个节点的值呢

朋友想了想,好像也是,还要考虑 链表 B 中每个节点的值放到链表 A 中的什么位置,这还得遍历整个链表 B 和 链表 A,并跟面试官说了。

面试官说这就是本题的难点

解题思路

考虑几种特殊情况。

1、链表 A 和链表 B 都为空,直接返回即可。

2、链表 A 不为空,链表 B 为空,直接返回链表 A。

3、链表 A 为空,链表 B 不为空,翻转链表 B 并返回翻转后的链表 B。

4. Weder die verknüpfte Liste A noch die verknüpfte Liste B sind leer. Durchlaufen Sie die verknüpfte Liste A und die verknüpfte Liste B, fügen Sie die Knoten in der verknüpften Liste B (von hinten nach vorne) in die verknüpfte Liste A ein und notieren Sie die Einfügeposition.

Der Interviewer sagte mit einem Lächeln: Diese Frage soll diejenigen von Ihnen schikanieren, die bereits arbeiten. Die Schüler, die Zeit haben, können die Fragen jeden Tag beantworten und sehr kompetent werden.

Zusammenfassung

In diesem Interview wurde „Divide and Conquer Thinking“ häufiger getestet. Eine Programmierfrage kann oft in mehrere einfache kleine Programmierfragen unterteilt werden Erst wenn diese kleinen Programmierprobleme gelöst sind, können sie zu großen Problemen zusammengefasst werden.

Das obige ist der detaillierte Inhalt vonMehrere Fragen, um festzustellen, ob Sie Byte eingeben können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:Java后端技术全栈
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage