草庐IT

leetcode刷题之回文链表

全部标签

ios - Objective-C 中的链表问题

我正在尝试向头部添加一个节点,但头部为零。知道发生了什么事吗?Ihavethispictureofthedebugprocess.[注意它是一个带有大小的链表的实现,不要让你迷惑!]节点.h//literallycontainsnoothercodeandthe.mfileisempty,allIwant//isapointertothenextobject@interfaceNode:NSObject@property(nonatomic,weak,readwrite)Node*next;@endNList.m--省略.h因为我觉得应该没问题@interfaceNList()@pro

【刷题大本营】二叉树进阶oj题(动图讲解,附代码及题目链接)

      🔥🔥欢迎来到小林的博客!!      🛰️博客主页:✈️小林爱敲代码      🛰️欢迎关注:👍点赞🙌收藏✍️留言      这篇文章给大家带来一些关于二叉树的oj题        每日一句:立身以立学为先,立学以读书为本。目录💖1.二叉树的分层遍历💖2.二叉树的分层遍历(逆)💖3.找2个节点的最近公共祖先💖4.二叉搜索树与双向链表💖5.从前序与中序遍历序列构造二叉树💖6.从中序与后序遍历序列构造二叉树总结🥳:💖1.二叉树的分层遍历题目:解题思路:用一个队列入数据,并且用一个变量leavesSize来记录当前一层的数据个数。然后用数组存储当前这一层的数据。再把这个数组添加到数组中。

万字长文,链表排序算法——冒泡排序、选择排序、插入排序、归并排序、快速排序、计数排序、桶排序、基数排序精讲及python实现

1.链表排序简介在数组排序中,常见的排序算法有:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序等。而对于链表排序而言,因为链表不支持随机访问,访问链表后面的节点只能依靠next指针从头部顺序遍历,所以相对于数组排序问题来说,链表排序问题会更加复杂一点。下面先来总结一下适合链表排序与不适合链表排序的算法:适合链表的排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、计数排序、桶排序、基数排序。不适合链表的排序算法:希尔排序。可以用于链表排序但不建议使用的排序算法:堆排序。希尔排序为什么不适合链表排序?希尔排序:希尔排序中经常涉及到对序列中第

【数据结构】链表:插入、删除

我是通过b站的教程(如下图)学习的,这里记录下学习笔记。数据结构简单导言(为什么会出现数据结构?)。在日常生活中,为了组织不同类型的数据,我们需要不同类型的结构,帮助我们更高效更方便的找到想要的数据。目录链表引言使用数组实现动态列表的弊端1.插入和删除元素的时间复杂度较高2.需要预先分配内存空间导致扩容不方便3.浪费内存 链表的思想链表和数组 1.查找元素2.所占内存3.插入删除列表元素的成本链表插入数据 链表删除数据链表引言当我们有一堆相同类型的数据时,我们会想到把他们归为一个列表,在代码实现上,你可能会想到数组,因为在我们已有知识基础上,数组就是用来存放相同类型数据的一种数据结构,能够帮助

【算法】链表-20240105

这里写目录标题一、LCR023.相交链表二、142.环形链表II一、LCR023.相交链表给定两个单链表的头节点headA和headB,请找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。提示:listA中节点数目为mlistB中节点数目为n0100如果listA和listB没有交点,intersectVal为0如果listA和listB有交点,intersectVal==listA[skipA+1]==listB[skipB+1]进阶:能否设计一个时间复杂度O(n)、仅用O(1)内存的解决方案?分析这道题比较容易想到的是,创建一个hash表,然后循环依次A,将A的所有节

Leetcode——485. 最大连续 1 的个数

💯💯欢迎来到的热爱编程的小K的Leetcode的刷题专栏文章目录1、题目2、滑动窗口3、一次遍历(官方题解)1、题目题目:给定一个二进制数组nums,计算其中最大连续1的个数。示例1:输入:nums=[1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续1,所以最大连续1的个数是3.示例2:输入:nums=[1,0,1,1,0,1]输出:2提示:1nums[i]不是0就是1.2、滑动窗口思路讲解:使用两个指针来维护窗口,用res来存储最大连续1的个数,如果当前元素为1,right右移一位,否则先更新res为right-left,然后++right,最后再令left跟上right

day 1 LeetCode刷题日志

今天的内容是704和27ovo704.二分查找给定一个n个元素有序的(升序)整型数组nums和一个目标值target写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1MyselfC://左闭右闭[0,1,2,3]intsearch(int*nums,intnumsSize,inttarget){intleft=0,right=numsSize-1;while(leftnums[mid])left=mid+1;elseright=mid-1;}return-1;}MyselfC++://左闭右闭[0,1,2,3]intsearch(vector&nums,inttarg

面试回忆录:链表&&二叉树

导语:    链表与二叉树都是非常基础且非常重要的数据结构,这类题目在找工作面试中是非常高频的考题,非常考验基本功。作者在曾经在面试过程中,被要求现场写过的两道题目,分别是关于二叉树和链表的,因此对这两道题目记忆比较深刻。所以写下这篇博客与读者分享。一.二叉树--求祖父节点值为偶数的节点和LeetCode题目链接:力扣(LeetCode)官网-全球极客挚爱的技术成长平台题目描述:        给你一棵二叉树,请你返回满足以下条件的所有节点的值之和:        该节点的祖父节点的值为偶数。(一个节点的祖父节点是指该节点的父节点的父节点。)如果不存在祖父节点值为偶数的节点,那么返回 0 。示

【算法练习】4种反转链表的方法(Java实现)

目录前言:题目:方法一:迭代法方法二:头插法方法三:递归法方法四:栈辅助    总结:前言:        本文阅读基础:有一定的数据结构知识,了解单向链表。题目:        单向链表:1,2,3,4,5 反向输出,期待:5,4,3,2,1        定义一个单向链表:publicstaticclassListNode{intval;ListNodenext;ListNode(intx){val=x;}//此处省略get,set方法}main方法:publicstaticvoidmain(String[]args){ListNodefive=newListNode(5);ListNod

python经典百题之static定义静态变量的方法

题目:学习static定义静态变量程序分析在Python中,“static”(静态变量)的概念通常与类的属性相关联。虽然Python没有严格的静态变量概念,但可以通过类属性或模块级变量来模拟静态变量的功能。我们将探讨三种不同的方法来模拟静态变量,以及各种方法的解题思路、优缺点。解题思路我们将介绍三种模拟静态变量的方式:类属性:通过类的属性来模拟静态变量。类的所有实例共享这些属性,类似于静态变量的概念。类方法:通过类方法来模拟静态变量。在类方法中使用类变量来实现静态变量的效果。装饰器:使用装饰器来模拟静态变量。通过装饰器的方式将函数转换为类的静态方法,实现静态变量的效果。方法一:类属性解题思路在