code
烟火独行客
请大神们多指点
展开
-
最大子序和(C方法暴力解决)
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。代码int maxSubArray(int* nums, int numsSize){int i = 0;int j = 0;int iMax = nums[0];int iTmp = 0;原创 2020-12-10 14:07:00 · 242 阅读 · 0 评论 -
数组中找到两数之和并返回角标(C)
(力扣刷到的)给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]代码int* twoSum(int* nums, int numsSize, int target, int* retu原创 2020-12-07 17:08:04 · 366 阅读 · 0 评论 -
删除排序数组中的重复项&&移除元素(C)
删除排序数组中的重复项题意:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。你不需要考虑数组中超出新长度后面的元素。代码:int removeDuplicates(int* n原创 2020-12-04 16:58:45 · 101 阅读 · 0 评论 -
合并两个有序链表(C方法)
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){if (!l1)return l2;if (!l2)return l1;struct ListNode* head = (struct ListNode*)malloc(sizeof(struct ListNode)), *t = head;while (原创 2020-12-03 10:49:53 · 834 阅读 · 0 评论 -
搜索数组插入位置(C方法)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1int searchInsert(int* nums, int numsSize, int target){if(numsNULL || numsSize0) return 0;int l = 0, r = numsSize -1;int原创 2020-12-02 15:20:47 · 169 阅读 · 0 评论 -
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转(C方法)
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转#define flase 0int reverse(int x){long lRet = 0;while(0 != x){lRet = lRet * 10 + x % 10;x = x / 10;}if((int)lRet != lRet){ return flase;}return (int)lRet;}...原创 2020-12-02 14:41:19 · 364 阅读 · 0 评论 -
判断数组是否为回文 (C方法)
判断是否为回文**C方法**{int m[100] = {};int i = 0;int j = 0;if(x<0){return false;}while(x){ m[i] = x%10; x = x/10; i += 1;}while(j!=i/2){ if(m[j]!=m[i-1-j]) return false; j += 1;}return true;}原创 2020-12-02 10:51:30 · 1392 阅读 · 0 评论