LeedCode
一枚小菜程序员
大家好,俺是 干啥啥不行,吃饭第一名,称霸幼儿园
展开
-
在次手撕前缀树(字典树)
代码原创 2022-06-19 17:34:42 · 119 阅读 · 0 评论 -
字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。输入: num1 = "2", num2 = "3"输出: "6"输入: num1 = "123", num2 = "456"输出: "56088"分析:将每个数分解为 例如12345 分为:10000 + 2000 + 300 + 40+ 5然后计算每个子项 ...原创 2022-03-26 11:26:02 · 462 阅读 · 0 评论 -
算法-floyd判圈算法 (快慢指针法)
问题:如何检测一个链表是否有环,如果有,那么如何确定环的起点?如何确定环的长度?时间复杂度:O(n) (高效率) 空间复杂度:O(1)弗洛伊德(Floyd )使用了两个指针,一个慢指针(龟)每次前进一步,快指针(兔)指针每次前进两步(两步或多步效果是等价的,只要一个比另一个快就行。但是如果移动步数增加,算法的复杂度可能增加)。如果两者在链表头以外(不包含开始情况)的某一点相遇(即相等)了,那么说明链表有环,否则,如果(快指针)到达了链表的结尾(如果存在结尾,肯定无环),那么说明没环。环的检测从上原创 2022-03-01 11:42:31 · 545 阅读 · 0 评论 -
多线程之交替打印FooBar
给你一个类:class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i = 0; i < n; i++) { print("bar"); } }}两个不同的线程将会共用一个 FooBar实例:线程 A 将会调用foo()方法,而线程...原创 2022-01-28 15:45:01 · 703 阅读 · 0 评论 -
1418. 点菜展示表
给你一个数组 orders,表示客户在餐厅中完成的订单,确切地说, orders[i]=[customerNamei,tableNumberi,foodItemi] ,其中 customerNamei 是客户的姓名,tableNumberi 是客户所在餐桌的桌号,而 foodItemi 是客户点的餐品名称。请你返回该餐厅的 点菜展示表 。在这张表中,表中第一行为标题,其第一列为餐桌桌号 “Table” ,后面每一列都是按字母顺序排列的餐品名称。接下来每一行中的项则表示每张餐桌订购的相应餐品数量,第一列应原创 2021-07-06 21:32:11 · 69 阅读 · 0 评论 -
每日一题之相交链表
题目描述给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:分析:**题目描述的寻找两链表的公共头部,也就头部之后的点 他们是相等的, 所以考虑右端对齐问题,也就是尾部对齐问题 **先对两条链表扫描一遍,取得两者长度,然后让长的链表先走「两者的长度差值」,然后再同时走,遇到第一个节点即是答案。class Solution {public: ListNode *ge原创 2021-06-04 22:18:27 · 241 阅读 · 2 评论