算法学习
算法学习
互联网打工人no1
不定时分享一些本人学习的心得,供大家分享交流学习。
展开
-
每日一题——第四十六题
【代码】每日一题——第四十六题。原创 2024-08-05 20:36:11 · 441 阅读 · 0 评论 -
每日一题——第二十二题
【代码】每日一题——第二十二题。原创 2024-07-23 09:42:19 · 84 阅读 · 0 评论 -
定义一个函数,将输入的数字字符串转换成相对应的整数。
在C语言中,将数字字符串转换成整数的一个常用方法是使用strtol函数,该函数定义在stdlib.h头文件中。但如果你想要自己实现这个功能而不使用标准库函数,你可以通过遍历字符串并逐位计算整数值来完成。原创 2024-07-07 16:17:41 · 152 阅读 · 0 评论 -
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
【代码】有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。原创 2024-06-27 14:58:18 · 90 阅读 · 0 评论 -
输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
【代码】输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。原创 2024-06-26 17:04:29 · 169 阅读 · 0 评论 -
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中
100// 定义数组的最大大小// 函数用于插入新数到已排序的数组中// 如果数组已满,不能插入return;int i;// 找到新数应该插入的位置i--) {// 将大于新数的元素向后移动一位// 插入新数(*size)++;// 数组大小增加1// 示例已排序数组// 数组当前的大小int num;// 要插入的数// 获取用户要插入的数// 调用函数插入数到数组中// 打印插入后的数组i < size;原创 2024-06-26 15:41:47 · 262 阅读 · 0 评论 -
题目:求一个3*3矩阵对角线元素之和
【代码】题目:求一个3*3矩阵对角线元素之和。原创 2024-06-26 15:25:40 · 138 阅读 · 0 评论 -
对n个数进行排序
【代码】对n个数进行排序。原创 2024-06-26 11:48:53 · 157 阅读 · 0 评论 -
利用递归将一个整数n转换为字符串
【代码】利用递归将一个整数n转换为字符串。原创 2024-06-26 00:07:43 · 115 阅读 · 0 评论 -
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
因为index是4(即’e’的索引),它不小于0,所以不满足递归终止条件。因此,我们从字符串的最后一个字符’e’的索引开始递归。:因此,屏幕上显示的是"edcba",这是输入字符串"abcde"的反向。:当最深处的递归调用返回时,我们开始从内层向外层逐层返回,并打印字符。同样,它不满足递归终止条件,并递归调用。,满足递归终止条件,函数返回,不执行任何打印操作。打印当前字符:但是,在打印’d’之前,被调用,此时我们开始处理’d’。继续递归:这个过程继续,直到。原创 2024-06-25 10:57:20 · 255 阅读 · 0 评论 -
采用递归与非递归方式求解n!
【代码】采用递归与非递归方式求解n!原创 2024-06-25 10:36:41 · 124 阅读 · 0 评论 -
题目:求1+2!+3!+…+20!的和
【代码】题目:求1+2!+3!+…+20!的和。原创 2024-06-25 10:18:59 · 146 阅读 · 0 评论 -
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
【代码】题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。原创 2024-06-25 10:06:25 · 164 阅读 · 0 评论 -
猴子吃桃问题
采用回溯的思想,第十天有一个桃子,那么第九天桃子数量 = (1 + 1)* 2。第八天的桃子数量 = (第九天的桃子数量 + 1)* 2 …原创 2024-06-25 09:45:42 · 226 阅读 · 0 评论 -
输入一个数字,倒序输出,如果输入-123,输出321-
1、判断输入的数字是否是负数,如果是负数,把它转换成正数。2、逐个处理num的每一位数字,并构建倒序的数。思想:其实就是多增加了一个判断负数的情况。原创 2024-06-25 09:06:28 · 212 阅读 · 0 评论 -
找出1000以内的所有的完数
完数(Perfect Number)是一个正整数,它等于除了它本身以外所有正因子之和。例如,6的因子有1、2、3和6,其中1+2+3=6,所以6是一个完数。原创 2024-06-24 17:02:49 · 310 阅读 · 0 评论 -
题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字=2
【代码】题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字=2。原创 2024-06-24 16:21:36 · 175 阅读 · 0 评论 -
求满足abc + cba = 1333的a、b、c分别是什么
可以考虑采用暴力枚举的方法,分别求出数的个位、十位、百位,然后相乘判断。原创 2024-06-24 16:02:31 · 323 阅读 · 0 评论 -
有效的括号
当我们遇到一个右括号时,我们需要将一个相同类型的左括号闭合。如果不是相同的类型,或者栈中并没有左括号,那么字符串 s无效,返回 False。哈希表的键为右括号,值为相同类型的左括号。当我们遇到一个左括号时,我们会期望在后续的遍历中,有一个相同类型的右括号将其闭合。注意到有效字符串的长度一定为偶数,因此如果字符串的长度为奇数,我们可以直接返回 False,省去后续的遍历判断过程。在遍历结束后,如果栈中没有左括号,说明我们将字符串 s中的所有左括号闭合,返回 True,否则返回 False。原创 2024-06-20 16:23:04 · 274 阅读 · 0 评论 -
将一个整型数字翻转
*给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。是指正序(从左向右)和倒序(从右向左)读都是一样的整数。原创 2024-06-20 15:37:27 · 223 阅读 · 0 评论 -
将有序数组转换为二叉搜索树
给你一个整数数组 nums ,其中元素。,请你将其转换为一棵。原创 2024-06-06 13:37:56 · 171 阅读 · 0 评论 -
合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。输入:nums1 = [1], m = 1, nums2 = [], n = 0。输入:nums1 = [], m = 0, nums2 = [1], n = 1。原创 2024-06-06 11:47:17 · 210 阅读 · 0 评论 -
非空数组表示的元素值加一
② 末位有进位,在中间位置进位停止,则需要找到进位的典型标志,即为当前位 %10后为 0,则前一位加 1,直到不为 0 为止,比如 499 => 500。③ 末位有进位,并且一直进位到最前方导致结果多出一位,对于这种情况,需要在第 2 种情况遍历结束的基础上,进行单独处理,比如 999 => 1000。① 末位无进位,则末位加一即可,因为末位无进位,前面也不可能产生进位,比如 45 => 46。这道题需要整理出来有三种情况,在进行处理会更舒服。时间复杂度:O(n)原创 2024-06-06 09:49:54 · 152 阅读 · 0 评论 -
搜索插入位置,返回其索引下标
考虑使用for循环。从下标0开始依次比较数组中每一个元素,将其与目标target进行对比,若当前nums[i] >= target,则target应当插入i所在的位置,即索引下标为i,返回即可。原创 2024-06-06 08:51:21 · 188 阅读 · 0 评论 -
移除数组中重复元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。返回 k。输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2,原创 2024-06-05 17:33:06 · 219 阅读 · 0 评论 -
删除有序数组中的重复项
更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2。输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]输出:2, nums = [1,2,_]输入:nums = [1,1,2]原创 2024-06-05 17:06:48 · 220 阅读 · 0 评论 -
求两个数组中元素之和为目标值,返回数组元素的下标
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个整数,并返回它们的数组下标。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。输入:nums = [3,3], target = 6。原创 2024-06-05 15:52:58 · 224 阅读 · 0 评论 -
寻找两个正序数组的中位数
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。要求:算法的时间复杂度应该为 O(log (m+n))。1,先将nums1和nums2合并成一个有序数组arr。二、使用暴力插入 + 冒泡。2,再将arr求取中位数。原创 2024-06-05 15:41:34 · 165 阅读 · 0 评论