第一次写CSDN,献给leetcode
Posted 战火的小雨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一次写CSDN,献给leetcode相关的知识,希望对你有一定的参考价值。
第一次写csdn,献给leetcode O(∩_∩)O哈哈~,所以我准备写一下leetcode的第一题(我也是最近才开始写leetcode的)
题目:两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
(你可以按任意顺序返回答案。
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum)
刚看到这个题时感觉挺简单的,应该就是遍历一下(简称暴力枚举)(后面发现应该有更好的方法–哈希表(不会o(╥﹏╥)o)),可写的时候感觉还是有一些麻烦的。废话不多少,直接上代码。
int newNum[2];
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
int i=0,j=0;
for(i=0;i<numsSize-1;i++)
{
for(j=i+1;j<numsSize;j++)
{
if(nums[i]+nums[j]==target)
{
newNum[0]=i;
newNum[1]=j;
*returnSize = 2;
return newNum;
}
}
}
return 0;
}
写的时候也是遇到了问题,就是返回数组一直有问题,后来看其他人的代码,才发现在函数中用创建数组并返回,需要用int* ret = malloc(sizeof(int) * 2);
malloc 函数其实就是在内存中:找一片指定大小的空间,然后将这个空间的首地址给一个指针变量,这里的指针变量可以是一个单独的指针,也可以是一个数组的首地址, 这要看malloc函数中参数size的具体内容。这里malloc分配的内存空间在逻辑上是连续的,而在物理上可以不连续。
后来我才想起来原因,原因是:当一个函数调用后,其占用的内存空间会自动释放。(这好像是变长数组(VLA)和malloc()区别。link)
差不多就是这些了,感觉还不错,可以把自己问题及解决办法记录下来,并分享出来。
以上是关于第一次写CSDN,献给leetcode的主要内容,如果未能解决你的问题,请参考以下文章