两数之和
题目
1.给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
思路
定义两层循环\n外层循环代表第一个数
第一个数范围为数组中第一个元素一直到倒数第二个元素
内层循环代表第二个数
第二个数范围为数组中第二个元素一直到最后一个元素
判断两个元素之和是否为目标值\n如果是则返回含有两个下标的切片
不是则继续循环
若没有结果则返回一个空切片
解题方法
func twoSum(nums []int, target int) []int {
//定义一个切片用来存放返回值(两个下标)
result := make([]int,0)
//定义外层循环i
for i := 0; i < len(nums) - 1; i++{
//定义内层循环j j=i+1
for j := i+1;j < len(nums);j++{
//判断两个数之和是否为目标值
if nums[i] + nums[j] == target{
//如果是,则将下标存放入切片中
result = append(result,i,j)
//返回切片,程序结束
return result
}
}
}
//如果没找到结果,则返回空切片
return result
}
回文数
题目
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;
否则,返回false
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
思路
将数字转换为字符串
通过下标取到每个元素并比较他们是否相等
解题方法
func isPalindrome(x int) bool {
result := true
//将int类型的数值转换为字符串
str := strconv.Itoa(x)
//以中间为分界点,判断两端对应的数字是否相等
for i := 0;i <= len(str)/2;i++{
if str[i] != str[len(str)-1-i]{
//若不相等,则不是回文数
result = false
return result
}
}
return result
}