算法练习
love_is_zero
什么都略懂一点,生活更多彩一些。(向着六边形战士努力)
展开
-
算法练习——杨辉三角
/** * @param {number} numRows * @return {number[][]} */var generate = function(numRows) { let res = []; // 保存输出结果 let lastTem = []; // 保存上一次的结果 for(let i=0; i<numRows; i++) { let tem = []; for(let j=0; j<=i; j++) {...原创 2022-03-14 23:49:34 · 154 阅读 · 0 评论 -
算法练习——快乐数
题目:给定一个数n,如果是快乐数,输出true,否则输出false。扩展:快乐数——①将原数每一位求平方,求和得到新的数,②如果新的数是1就是快乐数,否则对新数重复步骤①,直到求出1。注意:如果不是快乐数就会一直循环。范围:n:[1, 2^32-1]分析:①如果不是1,就要求每位的平方和;②用数组来存储原数以及每次求的数,如果有重复就返回false。/** * @param {number} n * @return {boolean} */var isHappy = funct原创 2022-03-11 20:27:52 · 989 阅读 · 0 评论 -
算法练习——判断能否形成等差数列
题目:提供一串整型数组arr,判断能否形成等差数列。范围:arr.length:[2,1000] arr[i] : [-10^6, 10^6]分析:①排序;②根据arr[1]-arr[0]循环判断是否等差。/** * @param {number[]} arr * @return {boolean} */var canMakeArithmeticProgression = function(arr) { // 先排序,正序倒序都可以 arr.sort((a,b)=&原创 2022-03-11 09:28:19 · 859 阅读 · 0 评论 -
算法练习——数组元素积的符号
要求:一串整数数组nums,求积,对积用signFunc(x),正数返回1,负数-1,零0.范围:nums.length:[1,1000] nums[i]:[-100,100]分析:①遍历数组,循环求积;②定义signFunc函数对乘积求符号。问题:注意题目的范围,乘积最大值可是100^1000,远远超过了整型的范围,所以在每次累乘的时候都进行一次符号运算,使得最终的乘积就是答案。、进阶:不应该被题目束缚住,题目说返回signFunc(product),如果乘积太大,produ.原创 2022-03-11 08:50:46 · 474 阅读 · 0 评论 -
算法练习——罗马数字转整数
当左边的罗马符号代表的数字比右边小,那么减去这个符号代表的值,否则加上。/** * @param {string} s * @return {number} */var romanToInt = function(s) { let sum = 0; for(let i=0; i<s.length; i++){ let ch = s.charAt(i); switch(ch){ case 'I':{ ...原创 2022-03-10 10:48:02 · 179 阅读 · 0 评论 -
算法练习——找到最近的有相同x坐标或y坐标的点(最小下标)
输入:一个点的x坐标和y坐标、点的集合输出:①需要有有效的点,即相同x或者相同y的点,否则直接返回-1; ②找出曼哈顿距离最小的点,如果有多个,返回第一个的下标。/** * @param {number} x * @param {number} y * @param {number[][]} points * @return {number} */var nearestValidPoint = function(x, y, points) { ...原创 2022-03-10 09:52:12 · 305 阅读 · 0 评论 -
算法练习——三角形的最大周长
注意,不是例子里面只有三个数,而是在3~10000个数中寻找能形成三角形的最大周长。①能形成三角形:{a+b>c、a+c>b、b+c>a}→{a+b>c、|a-b|<c}②最长周长:a,b,c必须是能构成三角形里面周长最长的,所以考虑先倒序排序,以1为跨度看三边能否构成三角形,如果可以就输出。/** * @param {number[]} nums * @return {number} */var largestPerimeter = function..原创 2022-03-10 09:15:37 · 687 阅读 · 0 评论 -
算法练习——整数的各位积和之差
class Solution { public int subtractProductAndSum(int n) { int mul = 1; int sum = 0; while(n>0){ mul *= n % 10; sum += n %10; n /= 10; } return mul - sum; }}原创 2022-03-09 17:44:09 · 85 阅读 · 0 评论 -
算法练习——位1的个数
public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { // 将整形数转换成二进制字符串 String num = Integer.toBinaryString(n); // count用来记录‘1’的个数 int count = 0; // 循环遍历,累加1...原创 2022-03-09 17:27:22 · 55 阅读 · 0 评论 -
算法练习——键盘行
class Solution { public String[] findWords(String[] words) { String firstLine = "qwertyuiop"; String secondLine = "asdfghjkl"; // 用来比对 List<String> list = new ArrayList<String>(); // 用来动态存储合适的单词 int a ...原创 2022-03-09 16:47:40 · 52 阅读 · 0 评论