- 博客(22)
- 收藏
- 关注
原创 C语言:缺失的第一个正数
这里先屏蔽两种情况1.没有一的显然没有一,第一个没出现的整数就是一2.数组长度为n,正好从1排到n的情况,显然为n+1剩下的就是普通情况了由情况1,2屏蔽后我们可以处理数据。把小于0的数都变为1(情况一已经处理没有1的情况)把大于n的数全变为1(同理第二种情况)。哈希表判断数据是否出现过的原理就是看Q[a[i]]的值是否为正数,为正数a[i]就出现过。但是这里对空间复杂度要求是常数级。换...
2019-06-11 20:09:22
517
原创 C语言:组合总和
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。 示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:[[...
2019-06-11 16:03:34
1054
原创 C语言:下一个排列
实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1从右向左遍历 若都为升序 那么根据题目它的下一个值就是逆置数...
2019-06-10 12:49:00
747
翻译 毕业设计底层
#include “imlib.h”typedef struct xylr{int16_t x, y, l, r, t_l, b_l;}xylr_t;static float sign(float x){return x / fabsf(x);}static int sum_m_to_n(int m, int n){return ((n * (n + 1)) - (m * ...
2019-05-27 14:27:36
188
原创 C语言:不用除号的两数除
代码很简介 思想很重要a>>1相当于a/2;a<<3相当于a*8;for(i;i>=0;i–){//从2的15次方开始除,如果结果比除数小那么继续下去直到结果比除数大于等于仔细理解比如 输入 100和3 一开始100除以2的15次方是一个很小的数 不断除二除二除二… 直到32100/32=3 很明显余数4也是大于3的此时若直接输出32显然不对(输出...
2019-05-10 17:45:25
1174
原创 C语言:删除重复元素
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums ...
2019-05-10 15:38:16
6932
原创 C语言:K个一组翻转链表
给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1-&g...
2019-05-10 15:07:04
623
原创 C语言:括号生成
虽然题和上一篇类似但是调试过程还是遇到了一些问题,主要是自己的粗心count不用+1传递,因为我赋值字符串的时候就是从0开始的还有我测试的时候,测试输入2的输入时显示(())()()正常我思考为什么没有 ())(这种情况呢 其实看题不难理解 本文给的样例以及规定第一位为(就告诉了我们。头尾一定是(),根本原因就是我们的C语言由上至下按顺序执行if判断的结果造成了这个结果并不是算法错误,...
2019-05-10 13:25:51
1380
原创 C语言:电话号码字母排列
这点B玩意写了一下午加一晚上,但是理解了回溯法也值了。具体解释我写在注释里#include<stdio.h>char a[1000];//最后要输出的int f=0;//全局变量当做指针int a1[10]={0,1,2,3,4,5,6,7,8,9};char s1[10][10]={"","",“abc”,“def”,“ghi”,“jkl”,“mno”,“pqrs”,“t...
2019-05-09 19:35:24
3251
原创 C语言:三数和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]本题网上有很多思路,我采用一次快排+对...
2019-05-09 11:09:32
590
原创 C语言:罗马数字转整数
和整数转罗马数差不多注意判定条件即可,从右向左,如果它的下一位的值比它大的话证明是 IV IX这类特殊值 把加变成减#include<stdio.h>#include<string.h>void main(){int a[8]={1000,500,100,50,10,5,1};char c[8]={‘M’,‘D’,‘C’,‘L’,‘X’,‘V’,‘I’};int...
2019-05-08 18:58:33
746
原创 C语言:整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12...
2019-05-08 18:15:20
2727
1
原创 C语言:盛水容器
https://leetcode-cn.com/problems/container-with-most-water/solution/sheng-zui-duo-shui-de-rong-qi-by-leetcode/具体题目和例子在链接当中这个双指针方法实际上就是贪心算法,唯一要注意的就是如何移动指针,题目中给出容器实际上就是“长乘宽”,木桶装水的多少是由最短的一块木板决定的。同样根据贪心...
2019-05-08 16:55:32
567
原创 C语言:atio
#include<stdio.h>void main(){char s[10];scanf("%s",&s);int i,f,sum=0;for(i=0;i<10;i++){f=s[i]-‘0’;if(s[i]==’-’){printf("%c",s[i]);}if(f>=0&&f<=9){sum=sum*10+f;}...
2019-05-08 12:46:01
482
原创 C语言:Z字变换
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指...
2019-05-08 12:35:38
2004
原创 C语言:最长回文字符串
马拉车算法现在仅仅是看懂,以后会回来填坑。动态规划的本质就是求表但是递推式很难求这里设置一个二维数组jud[10][10]有jud[i][j]jud[1][8]的意义是判断位置1的字符到位置8的字符形成的字符串是否为回文字符串所以必有i<j,因此在二维数组中i>j的部分全部设置为0。(true为1,false为0)判断是否为回文字符串的递推式:s[i]==s[j],ju...
2019-05-08 10:11:06
1436
原创 C语言:求两个有序数组的中位数
写在前面 本题值得回看 受https://blog.csdn.net/hk2291976/article/details/51107778启发尤其是链接中的 割 的思想 求中位数最大的问题是数组个数的奇数偶数问题length/2 +1(length为奇数)mid={length/2+1的值+length/2的值 除以2 (length为偶数)割的思想:例子有数组 1,2,3,4 ...
2019-05-07 15:27:21
1963
4
原创 C语言动态规划0-1背包问题
#include<stdio.h>int main(){int v[5]={0,3,4,5,6};int w[5]={0,2,3,4,5};int j=8;int i=0;int i1=0;int tab[5][9];for(i=0;i<5;i++){tab[i][0]=0;}for(i1=0;i1<9;i1++){tab[0][i1]=0;}f...
2019-05-06 11:20:07
520
原创 C语言:无重复字符最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所...
2019-05-06 11:10:10
3060
原创 C语言:给出两个 非空 的链表用来表示两个非负的整数
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> ...
2019-05-06 10:02:53
2901
原创 C语言:LeetCode第一题 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]#include<...
2019-05-06 09:09:32
8727
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人