![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
三叉戟上的鲤鱼王
Karthus zyk
展开
-
算法笔记——求一个整数各位的平方和(或者其他值)
大致思路 遍历这个数中的每一位,进行操作。 通过这两句 int temp = n % 10; //求得最后一位的数 n = n / 10; //操作完之后把最后一位去掉 代码结构如下 private int getNextNumber(int n) { int res = 0; while (n > 0) { int temp = n % 10; //求得最后一位的数 res += temp *原创 2022-03-22 17:43:03 · 480 阅读 · 0 评论 -
Leetcode练习 2.双指针
Leetcode练习 2.双指针(977.有序数组的平方,167.两数之和II-输入有序数组) 思路:因为是非递减的数组,且没有规定正负,所以一定是数组两边的数绝对值大于中间的,则平方后的数越接近两端越大,但是无法确定那一边更大。 这时候就可以用两个指针分别在两端,一边对比一边向中间走,谁大(或者小,都可以)就先把谁放到目标数组中,然后指针往中间挪一位。 直到两个指针相遇,循环结束。 //官方题解 class Solution { public int[] sortedSquares(int[]原创 2021-11-27 16:42:45 · 200 阅读 · 0 评论 -
Leetcode练习1.二分查找
Leetcode 1.二分查找 思路:这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当看到题目描述满足如上条件的时候,可以想一想是不是可以用二分法了。 定义left、right指针,比较目标元素和中间元素的大小,然后不断缩小左右指针的范围继续寻找目标元素。 实际使用求中间mid索引建议用这种方法:int mid = left + (right-left)/2; 可以防止left+right溢出(原创 2021-11-26 18:27:43 · 607 阅读 · 0 评论