
leetcode每日一题总结
主要通过刷题获得一些小知识
小白先努力
学习学习再学习
展开
-
辗转相除法
遍历的思想就是从2开始到b(或者b/2)结束,如果其中某个数都能被两者整除,那该数就是最大公约数。(leetcode 1979. 找出数组的最大公约数)边界是当余数为0时最大公约数为另一个数。边界是当差为0时最大公约数为另一个数。其实是求a、b(a>b)最大公约数。原创 2023-11-28 22:32:50 · 557 阅读 · 0 评论 -
数据结构(邓俊辉):递归和迭代、分而治之和减而治之(3.汉诺塔)
汉诺塔的问题在leetcode上也有:在经典汉诺塔问题中,有 3 根柱子(ABC)及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制:(1) 每次只能移动一个盘子;(2) 盘子只能从柱子顶端滑出移到下一根柱子;(3) 盘子只能叠在比它大的盘子上。请编写程序,用栈将所有盘子从第一根柱子移到最后一根柱子。你需要原地修改栈。来源:力扣(LeetCode)链接:https://原创 2020-10-10 13:44:59 · 192 阅读 · 0 评论 -
leetcode:拼接链表(依然是建立一个虚拟头结点)(留存需要继续理解)
题目描述如下:这里面使用了一个指针的指针来指向两个链表中娇小的指针。 ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* dummy = new ListNode(0); ListNode* cur = dummy; while (l1 != nullptr && l2 != nullptr) { ListNode** pp = (l1原创 2020-09-28 21:47:02 · 177 阅读 · 0 评论 -
leetcode:建立一个虚拟的头结点
题目如图所示:其实就是删除结点:我的代码如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* deleteNode(ListNode* head, int v原创 2020-09-28 21:23:06 · 931 阅读 · 0 评论