Java每日一练(20230423)
目录
1. 数组元素统计 ※
2. 杨辉三角 II 🌟
3. 二进制求和 🌟
🌟 每日一练刷题专栏 🌟
Golang每日一练 专栏
Python每日一练 专栏
C/C++每日一练 专栏
Java每日一练 专栏
1. 数组元素统计
定义一个长度为5的数组arr1,用于存放5个1~9的随机整数(范围包含1和9),再定义一个长度为2的数组arr2,统计arr1中的元素对2求余等于0的个数,保存到arr2[0], 统计arr1中的元素对3求余等于0的个数,保存到arr2[1],在控制台打印输出arr2的所有元素
出处:
https://edu.csdn.net/practice/26319564
代码:
import java.util.Random;
public class RandomTest {public static void main(String[] args) {int arr1[] = new int[5];for (int i = 0; i < arr1.length; i++) {arr1[i] = new Random().nextInt(9) + 1;}int i2 = 0;int j3 = 0;for (int i = 0; i < arr1.length; i++) {if (arr1[i] % 2 == 0) {i2++;}if (arr1[i] % 3 == 0) {j3++;}}int arr2[] = new int[2];arr2[0] = i2;arr2[1] = j3;for (int i = 0; i < arr2.length; i++) {System.out.println(arr2[i]);}}
}
输出:
略
2. 杨辉三角 II
给定一个非负索引 rowIndex
,返回「杨辉三角」的第 rowIndex
行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: rowIndex = 3 输出: [1,3,3,1]
示例 2:
输入: rowIndex = 0 输出: [1]
示例 3:
输入: rowIndex = 1 输出: [1,1]
提示:
0 <= rowIndex <= 33
进阶:
你可以优化你的算法到 O(rowIndex)
空间复杂度吗?
出处:
https://edu.csdn.net/practice/26319565
代码:
import java.util.*;
public class getRow {public static class Solution {public List<Integer> getRow(int rowIndex) {List<Integer> row = new ArrayList<Integer>();for (int i = 0; i < rowIndex + 1; i++) {row.add(0, 1);for (int j = 1; j < row.size() - 1; j++)row.set(j, row.get(j) + row.get(j + 1));}return row;}}public static void main(String[] args) {Solution s = new Solution();for (int i = 0; i < 5; i++) {System.out.println(s.getRow(i));}}
}
输出:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
```Java
class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> row = new ArrayList<Integer>();
for (int i = 0; i < rowIndex + 1; i++) {
row.add(0, 1);
for (int j = 1; j < row.size() - 1; j++)
row.set(j, row.get(j) + row.get(j + 1));
}
return row;
}
}
```
3. 二进制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1
和 0
。
示例 1:
输入: a = "11", b = "1" 输出: "100"
示例 2:
输入: a = "1010", b = "1011" 输出: "10101"
提示:
- 每个字符串仅由字符
'0'
或'1'
组成。 1 <= a.length, b.length <= 10^4
- 字符串如果不是
"0"
,就都不含前导零。
出处:
https://edu.csdn.net/practice/26319566
代码:
import java.util.*;
public class addBinary {public static class Solution {public String addBinary(String a, String b) {StringBuffer s1 = new StringBuffer(a);s1.reverse();StringBuffer s2 = new StringBuffer(b);s2.reverse();if (s1.length() > s2.length()) {int n = s1.length() - s2.length();for (int i = 0; i < n; i++) {s2.append('0');}} else if (s1.length() < s2.length()) {int n = s2.length() - s1.length();for (int i = 0; i < n; i++) {s1.append('0');}}StringBuffer stringBuffer = new StringBuffer("");int i = 0;char flag = '0';while (i < s1.length() && i < s2.length()) {if (flag == '0') {if (s1.charAt(i) == s2.charAt(i) && s1.charAt(i) == '1') {flag = '1';stringBuffer.append('0');} else if (s1.charAt(i) == s2.charAt(i) && s1.charAt(i) == '0') {stringBuffer.append('0');} else {stringBuffer.append('1');}} else {if (s1.charAt(i) == s2.charAt(i) && s1.charAt(i) == '1') {flag = '1';stringBuffer.append('1');} else if (s1.charAt(i) == s2.charAt(i) && s1.charAt(i) == '0') {flag = '0';stringBuffer.append('1');} else {flag = '1';stringBuffer.append('0');}}i++;}if (flag == '1') {stringBuffer.append(flag);}stringBuffer.reverse();return stringBuffer.toString();}}public static void main(String[] args) {Solution s = new Solution();String a = "11", b = "1";System.out.println(s.addBinary(a,b));a = "1010"; b = "1011";System.out.println(s.addBinary(a,b));}
}
输出:
100
10101
🌟 每日一练刷题专栏 🌟
✨ 持续,努力奋斗做强刷题搬运工!
👍 点赞,你的认可是我坚持的动力!
🌟 收藏,你的青睐是我努力的方向!
✎ 评论,你的意见是我进步的财富!
☸ 主页:https://hannyang.blog.csdn.net/
![]() |
Golang每日一练 专栏 |
![]() |
Python每日一练 专栏 |
![]() |
C/C++每日一练 专栏 |
![]() |
Java每日一练 专栏 |