蚌埠做网站公司农家乐网站开发项目背景
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:04
当前位置: 首页 > news >正文
蚌埠做网站公司,农家乐网站开发项目背景,阿里云网站建设,广东深圳手机号码刷题顺序及思路来源于代码随想录#xff0c;网站地址#xff1a;https://programmercarl.com 202. 快乐数
编写一个算法来判断一个数 n 是不是快乐数。
「快乐数」 定义为#xff1a;
对于一个正整数#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复…刷题顺序及思路来源于代码随想录网站地址https://programmercarl.com 202. 快乐数
编写一个算法来判断一个数 n 是不是快乐数。
「快乐数」 定义为
对于一个正整数每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1那么这个数就是快乐数。
如果 n 是 快乐数 就返回 true 不是则返回 false 。
输入n 19
输出true
解释
1^2 9^2 82
8^2 2^2 68
6^2 8^2 100
1^2 0^2 0^2 1
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;/*** author light* Description 快乐数* 编写一个算法来判断一个数 n 是不是快乐数。** (题目中说了会 无限循环那么也就是说求和的过程中sum会重复出现这对解题很重要* create 2023-08-02 11:30*/
public class IsHappyTest {public static void main(String[] args) {Scanner inputnew Scanner(System.in);int ninput.nextInt();boolean resisHappy(n);System.out.println(res);}public static boolean isHappy(int n) {SetInteger setnew HashSet();while(n!1!set.contains(n)){set.add(n);ngetNextNum(n);}return n1;}private static int getNextNum(int n) {int sum0;int temp;while(n!0){tempn%10;sumtemptemp;nn/10;}return sum;}
}1. 两数之和
给定一个整数数组 nums 和一个整数目标值 target请你在该数组中找出 和为目标值 target 的那 两个 整数并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
输入nums [2,7,11,15], target 9
输出[0,1]
解释因为 nums[0] nums[1] 9 返回 [0, 1] 。
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;/** author light* Description 两数之和** 什么时候使用哈希法需要查询一个元素是否出现过或一个元素是否在集合里的时候需要考虑哈希法* create 2023-08-02 11:58*/
public class TwoSumTest {public static void main(String[] args) {Scanner inputnew Scanner(System.in);int ninput.nextInt();int[] numsnew int[n];for (int i 0; i nums.length; i) {nums[i]input.nextInt();}int targetinput.nextInt();int[] restwoSum(nums,target);System.out.println(Arrays.toString(res));}public static int[] twoSum(int[] nums, int target) {MapInteger,Integer mapnew HashMap();int[] resnew int[2];int temp;for (int i 0; i nums.length; i) {temptarget-nums[i];if(map.containsKey(temp)){res[0]i;res[1]map.get(temp);}//key:数组元素值value数组元素下标map.put(nums[i],i);}return res;}
}454. 四数相加 II
给你四个整数数组 nums1、nums2、nums3 和 nums4 数组长度都是 n 请你计算有多少个元组 (i, j, k, l) 能满足
0 i, j, k, l nnums1[i] nums2[j] nums3[k] nums4[l] 0
输入nums1 [1,2], nums2 [-2,-1], nums3 [-1,2], nums4 [0,2]
输出2
解释
两个元组如下
- (0, 0, 0, 1) - nums1[0] nums2[0] nums3[0] nums4[1] 1 (-2) (-1) 2 0
- (1, 1, 0, 0) - nums1[1] nums2[1] nums3[0] nums4[0] 2 (-1) (-1) 0 0 import java.util.HashMap; import java.util.Map; import java.util.Scanner;/*** author light* Description 四数相加 II** create 2023-08-02 12:30/ public class FourSumCountTest {public static void main(String[] args) {Scanner inputnew Scanner(System.in);int ninput.nextInt();int[] nums1new int[n];int[] nums2new int[n];int[] nums3new int[n];int[] nums4new int[n];for (int i 0; i nums1.length; i) {nums1[i]input.nextInt();}for (int i 0; i nums2.length; i) {nums2[i]input.nextInt();}for (int i 0; i nums3.length; i) {nums3[i]input.nextInt();}for (int i 0; i nums4.length; i) {nums4[i]input.nextInt();}int resfourSumCount(nums1,nums2,nums3,nums4);System.out.println(res);}public static int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {MapInteger,Integer mapnew HashMap();int count0;int temp1;int temp2;for (int i 0; i nums1.length; i) {for (int j 0; j nums2.length; j) {temp1nums1[i]nums2[j];map.put(temp1,map.getOrDefault(temp1,0)1);}}for (int i 0; i nums3.length; i) {for (int j 0; j nums4.length; j) {temp20-(nums3[i]nums4[j]);if(map.containsKey(temp2)){countmap.get(temp2);}}}return count;} }383. 赎金信 给你两个字符串ransomNote 和 magazine 判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以返回 true 否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 输入ransomNote a, magazine b 输出false import java.util.Scanner;/** author light* Description 赎金信* create 2023-08-02 13:10/ public class CanConstructTest {public static void main(String[] args) {Scanner inputnew Scanner(System.in);String ransomNoteinput.next();String magazineinput.next();boolean rescanConstruct(ransomNote,magazine);System.out.println(res);}public static boolean canConstruct(String ransomNote, String magazine) {if(magazine.length()ransomNote.length()){return false;}int[] numsnew int[26];for (int i 0; i magazine.length(); i) {nums[magazine.charAt(i)-a];}for (int i 0; i ransomNote.length(); i) {nums[ransomNote.charAt(i)-a]–;if(nums[ransomNote.charAt(i)-a]0){return false;}}return true;} }15. 三数之和 给你一个整数数组 nums 判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k 同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意答案中不可以包含重复的三元组。 输入nums [-1,0,1,2,-1,-4] 输出[[-1,-1,2],[-1,0,1]] 解释 nums[0] nums[1] nums2 0 1 0 。 nums[1] nums[2] nums[4] 0 1 (-1) 0 。 nums[0] nums[3] nums4 2 (-1) 0 。 不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。 注意输出的顺序和三元组的顺序并不重要。 import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner;/** author light* Description 三数之和* * (采用双指针法* create 2023-08-02 13:31/ public class ThreeSumTest {public static void main(String[] args) {Scanner inputnew Scanner(System.in);int ninput.nextInt();int[] numsnew int[n];for (int i 0; i nums.length; i) {nums[i]input.nextInt();}ListListInteger listthreeSum(nums);System.out.println(list);}public static ListListInteger threeSum(int[] nums) {ListListInteger resnew ArrayList();//先对数组进行排序Arrays.sort(nums);for (int i 0; i nums.length; i) {if(nums[i]0){return res;}//对a去重 (abc0)//因为已经排序过了只要a前面有一样的接下来的abc要么是和前面重复的// 要么就找不到这组了。bc同理只要重复一次就重复了int lefti1;int right nums.length-1;if(i0nums[i]nums[i-1]){continue;}while(rightleft){if(nums[i]nums[left]nums[right]0){right–;} else if (nums[i]nums[left]nums[right]0) {left;}else{//找到一对三元组将三元组加入集合中res.add(Arrays.asList(nums[i],nums[left],nums[right]));//对bc去重while(rightleftnums[left]nums[left1]){left;}while(rightleftnums[right]nums[right-1]){right–;}//找到三元组后left和right同时移动left;right–;}}}return res;} } 18. 四数之和 给你一个由 n 个整数组成的数组 nums 和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] 若两个四元组元素一一对应则认为两个四元组重复 0 a, b, c, d na、b、c 和 d 互不相同nums[a] nums[b] nums[c] nums[d] target 你可以按 任意顺序 返回答案 。 输入nums [1,0,-1,0,-2,2], target 0 输出[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner;/** author light* Description 四数之和** (双指针* create 2023-08-02 15:34*/ public class FourSumTest {public static void main(String[] args) {Scanner inputnew Scanner(System.in);int ninput.nextInt();int[] numsnew int[n];for (int i 0; i nums.length; i) {nums[i]input.nextInt();}int targetinput.nextInt();ListListInteger resfourSum(nums,target);System.out.println(res);}public static ListListInteger fourSum(int[] nums, int target) {//abcdtarget//对数组进行排序Arrays.sort(nums);ListListInteger resnew ArrayList();for (int i 0; i nums.length; i) {//一级剪枝if(nums[i]0nums[i]target){return res;}//一级去重if(i0nums[i]nums[i-1]){continue;}for (int j i1; j nums.length; j) {//二级剪枝if(nums[i]nums[j]0nums[i]nums[j]target){break;}//二级去重if(ji1nums[j]nums[j-1]){continue;}int leftj1;int right nums.length-1;while(rightleft){long sum(long)(nums[i]nums[j]nums[left]nums[right]);if(sumtarget){right–;} else if (sumtarget) {left;}else{//找到abcdtarget的四元组res.add(Arrays.asList(nums[i],nums[j],nums[left],nums[right]));//对left、right去重while(rightleftnums[left]nums[left1]){left;}while (rightleftnums[right]nums[right-1]){right–;}left;right–;}}}}return res;} }
- 上一篇: 蚌埠专业制作网站的公司网站开发用php还是js
- 下一篇: 包头 网站建设网络服务器机柜
相关文章
-
蚌埠专业制作网站的公司网站开发用php还是js
蚌埠专业制作网站的公司网站开发用php还是js
- 技术栈
- 2026年03月21日
-
蚌埠网站优化制作公司杭州seo
蚌埠网站优化制作公司杭州seo
- 技术栈
- 2026年03月21日
-
蚌埠市重点工程建设管理局网站世界十大电商平台
蚌埠市重点工程建设管理局网站世界十大电商平台
- 技术栈
- 2026年03月21日
-
包头 网站建设网络服务器机柜
包头 网站建设网络服务器机柜
- 技术栈
- 2026年03月21日
-
包头焦点网站建设服装公司网站定位
包头焦点网站建设服装公司网站定位
- 技术栈
- 2026年03月21日
-
包头全网营销网站建设html5 网站推荐
包头全网营销网站建设html5 网站推荐
- 技术栈
- 2026年03月21日






