目录
1. 两数之和
思路
代码
9. 回文数
思路
思路1
代码1
思路2
代码2
1. 两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:输入:nums = [3,2,4], target = 6
输出:[1,2]
示例 3:输入:nums = [3,3], target = 6
输出:[0,1]来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/two-sum
思路
我这个思路应该很容易懂,比较简单,看代码就能懂😁😁😁😁
代码
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target, int* returnSize)
{
    int* p = (int*)malloc(2 * sizeof(int*));//放两个数下标
    *returnSize = 2;
    int i = 0;
    for(i = 0; i < numsSize; i++)
    {
        int j = 0;
        for(j = i + 1; j < numsSize; j++)
        {
            if(nums[i] + nums[j] == target)
            {
                p[0] = i;
                p[1] = j;
            }
        }
    }
    return p;
    free(p);
    p = NULL;
}9. 回文数
这个我好好解释一下😎😎😎😎
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
示例 2:输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/palindrome-number
思路
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。(例如 121 这种,不多说,我们往下来)
思路就是把这个数整个调过来,画图解释

那用代码怎么实现呢
思路1
先来代码1(这是我最开始的思路)

代码1
bool isPalindrome(int x)
{
   int i = 0;
    int count = 0;
    int sum = 0;
    if (x >= 0)
    {
        //先确定该数有几位
        int tem = x;//备份x的值之后还要用,不然之后x就得0了
        while (tem > 0)
        {
            tem /= 10;
            count++;
        }
        int tem2 = x;
        for (i = 0; i < count; i++)
        {
            sum += (tem2 % 10) * pow(10, count - i - 1);
            tem2 = tem2 / 10;
        }
        if (x == sum)
        {
            return true;
        }
    }
    return false;
}思路2
其实还是调换的思路,下面的代码更简洁,也没有多余的函数,简单来说,也是从个位开始,乘 10,相加,乘 10,相加,把后面位数的数字顶到了前面
代码2
bool isPalindrome(int x)
{
  int tem = x;
  long sum = 0;
  while(tem > 0)
  {
      sum *= 10;
      sum += tem % 10;
      tem /= 10;
  }
  if(x == sum)
  {
      return true;
  } 
  return false;
}╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯完╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯



















