随笔分类 - 数据结构和算法
摘要:给出一个16进制,转换成10进制数 如:“F4” --> 244 16进制转换成10进制:A-F对应10-15 F4 = 15*16^1 + 4*16^0 = 244 主要是将字符转换成数字 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #inc
阅读全文
摘要:在进行单链表的基本运算之前必须先建立单链表,建立单链表的常用方法有两种:头插法建表和尾插法建表 头插法建表,从一个空表开始,读取字符数组a中的字符,生成新节点,将读取的数据存放到新节点的数据域中,然后将新节点插入到当前链表的表头上,直到读完字符数组a的所有元素为止。 核心代码: s->next =
阅读全文
摘要:剑指offer替换空格: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路:当我们从前往后进行替换时,每替换一个就要移动后面的所有字符,时间复杂度是0(n2) 我们可以从后向前替换,先
阅读全文
摘要:剑指offer:二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 //思路:首先选一个右上角的元素,当target大于这个元素,说明不在
阅读全文
摘要:c语言常见的字符串处理函数 strlen()函数 1函数原型: size_t strlen( const char *string ); 2,函数功能:计算指定的字符串string的长度。 3,strlen函数实现: #include <stdio.h> int my_strlen1(const c
阅读全文
摘要:题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 #include <i
阅读全文
摘要:12、给定一个单链表(无环),请判断是否是回文结构。在删除倒数第K个节点后,是否为回文结构。 (回文结构:从头到尾遍历节点的值序列结果,与从尾到头遍历的值序列结果是一样的) 要求: 要考虑时间复杂度和空间复杂度 示例 1: 输入: 1->8->4->4->8->1, K=3 输出: true, tr
阅读全文
摘要:剑指Offer两数之和为S题解 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的 思路: //思路:用两个指针,头尾指针向中间靠拢, //当两数之和大于S时,说明最大值太大了(数组是递增的),所以右指针向左移动 //两数之
阅读全文
摘要:KMP算法: 给定一个主串S及一个模式串P,判断模式串是否为主串的子串;若是,返回匹配的第一个元素的位置(序号从1开始),否则返回0; 这里先不写算法,仅仅计算next和nextVal值 那么计算时只用到子串,也就是模式串 这里模式串为:abaabcac 第一步将模式串写上序号,我们这里从1开始(有
阅读全文

浙公网安备 33010602011771号