草庐IT

leetcode刷题之回文链表

全部标签

【C语言】(结构链表)学生信息管理系统

学生信息管理系统壹、介绍思路贰、代码分布一、头文件,定义结构链表二、菜单栏三、不同函数实现不同功能1、录入信息2、查看信息3、保存信息4、读取信息5、查找成年学生6、查找男or女学生7、学生人数8、修改学生信息9、删除学生信息10、主函数叁、所有代码壹、介绍创建一个学生结构体,学生的属性的有sno,sname,ssex,sage(分别是学号,姓名,性别,年龄),创建一个指针链表,用来存放学生,中存放不少于五个学生,要求性别有区分,年龄有区分,使用函数,打印性别为不同性别的学生信息;打印年龄>18的学生信息,有学生数量,有修改,删除学生信息的功能。要求有文件流,可以存储和读区数据思路首先考虑到代

【C刷题】day6

一、选择题1、以下叙述中正确的是()A:只能在循环体内和switch语句体内使用break语句B:当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行C:continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环D:在while语句和do-while语句中无法使用continue语句【答案】:A【解析】:考点:break和continue语句B.当break用于switch语句中时,可使程序跳出switch而不执行switch以后的语句;当break语句用于do-while、for、while循环语句中时,可使程序终止循环而不执行

代码随想录Day20 回溯算法 LeetCode77 组合问题

以下内容更详细解释来自于:代码随想录(programmercarl.com)1.回溯算法理论基础回溯法也叫回溯搜索法,是搜索法的一种,我们之前在二叉树中也经常使用到回溯来解决问题,其实有递归就有回溯,有的时候回溯隐藏在递归之下,我们不容易发觉,今天我们来详细介绍一下什么是回溯,它能解决哪些问题.回溯法效率回溯法的效率是不高的,回溯的本质是穷举,因为有些问题能用回溯法解决出来就不错了,别无他法,只能使用这个暴力方法回溯法,一般可以解决如下几种问题:组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N

牛客网刷题——JAVA

个人主页:熬夜磕代码丶作品专栏:javase我变秃了,也变强了给大家介绍一款程序员必备刷题平台——牛客网点击注册一起刷题收获大厂offer吧文章目录一、动态字符串二、十进制数转二进制数三、判断学生成绩四、统计字符串中字母出现次数一、动态字符串将一个由英文字母组成的字符串转换成从末尾开始每三个字母用逗号分隔的形式。importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);Stringstr=scanner.next();String

链表增删操作问题及解决方法

目录链表增加元素首部中间尾部链表删除元素首部中间尾部链表是一种常用的数据结构,用于存储和组织数据。在链表中,增加和删除元素是常见的操作。然而,在进行链表的增删操作时,对于首部、中间和尾部位置的元素,都存在一些问题需要解决。链表增加元素首部当需要在首部插入一个新的元素时,需要将该元素的引用指向原本的首部节点,并将链表的头引用指向新的元素。这样做会花费O(1)的时间,即常量时间,因为只需要修改两个引用的指向。中间当需要在链表中间插入一个元素时,需要先找到插入位置的前一个节点,然后通过修改引用来插入新的节点。这个过程需要花费O(n)的时间,其中n是链表的长度。需要注意的是修改引用的顺序不能颠倒。尾部

DS线性表之链表

前言我们上一期介绍了顺序表,它的底层就是数组,我们也分别对顺序表的动态版本和静态版本进行了实现!并且分析了顺序表的优缺点,优点是:尾插、尾删效率很高,其时间复杂度是O(1);缺点是:在头部插入、删除的时候效率低,其时间复杂度是O(N);而且即使是动态版本的扩容也是会浪费空间的(这里在动态内存管理介绍realloc时专门介绍过)!!这个上期的最后也介绍了!我们想有没有一种数据结构,用一个添加一个,做到最起码的空间不浪费呢?答案是:有的~!他就是我们本期介绍的链表!本期内容介绍什么是链表链表的分类单链表的实现(不带头)单链表的实现(带头)带头双向循环链表的实现链表和顺序表的区别目录前言本期内容介绍

力扣环形链表(1)进阶环形链表(2)及环形链表的约瑟夫问题

为了加深对环形链表的理解和掌握,这两道题是很不错的选择。这里所说环形链表不是一个圈圈的结构,而是带环链表。链接:环形链表(1)注意这里链表的长度所以要注意链表是否为空第一种方法,应该是比较容易想到的方法(偷鸡取脚) 遍历链表,将每个节点的val更改为一个不容易想到的值,如666666,当遇到一个666666时就返回true,如果在遍历过程中一直走到空都再没有遇到一个666666,那就返回false。代码如下boolhasCycle(structListNode*head){structListNode*p=head;while(p){if(p->val!=666666){p->val=6666

LeetCode刷题第7周小结

文章目录 1.使序列递增的最小交换次数2.仅执行一次字符串交换能否使两个字符串相等3.链表组件4.最多能完成排序的块5.不同的子序列6.用栈操作构建数组7.可能的二分法关键词动态规划、广度优先搜索、深度优先搜索、染色法、中等困难 1.使序列递增的最小交换次数难度: ★ ★ ★  链接:力扣解题思路:动态规划解题代码:classSolution{publicintminSwap(int[]nums1,int[]nums2){intn=nums1.length;inta=0,b=1;for(inti=1;inums1[i-1]&&nums2[i]>nums2[i-1]){a=Math.min(a,

【数据结构】顺序表和链表(上)(附leetcode练习题)

☃️个人主页:fighting小泽🌸作者简介:目前正在学习C语言和数据结构🌼博客专栏:数据结构🏵️欢迎关注:评论👊🏻点赞👍🏻留言💪🏻文章目录1.线性表2.顺序表2.1概念及结构2.2静态顺序表2.3动态顺序表2.4动态顺序表的实现2.41顺序表的初始化和销毁2.42检查顺序表的容量2.43顺序表的尾插和头插2.44打印顺序表的元素2.45顺序表的尾删和头删2.46顺序表的随机插入和删除2.47顺序表的修改3.整体代码3.1SeqList.h代码3.2SeqList.c代码4.leetcode练习题5.结尾1.线性表线性表(linearlist)是n个具有相同特性的数据元素的有限序列。线性表是一

【Leetcode之路 | Java & Python】两数之和(暴力枚举&哈希表)

🤵‍♂️个人主页:@计算机魔术师👨‍💻作者简介:CSDN内容合伙人,全栈领域优质创作者。文章目录一、说在前面二、两数之和2.1、暴力枚举2.1.1python实现2.1.2java实现3.1哈希表(Hashtable)3.1.1python实现3.1.2Java实现一、说在前面刷题是一件日积月累的事情,我们在刷题中要保持良好习惯,让每一道题发挥最大作用!以下是某ACM🥇金牌选手所建议的刷题方式,觉得很不错,给大家参考一下如何正确的做一道题从简入手:先从简单暴力(时间复杂度高)的方法入手。优化:思考如何在第一步的基础上,如何优化算法,降低时间复杂度。构思代码:有了以上两步,我们此时应该已经有了一