
算法
yandao
“我是谁”、“我在哪”、“我要去哪儿”
展开
-
java奇偶性的判定
以下代码对于奇偶性的判定是否正确? i%2==1 在大多数时间是正确的,但是至少有4分之一的时间是错误的 如果是正整数,它是正确的 如果是负整数,它有一半的时候是错误的 负奇数对2求余得到的值是-1不是1 所以可以用如下的代码判定奇偶性 i%2==0 也可以用位操作符& AND来代替: i & 1 == 0 ...原创 2020-09-23 20:38:37 · 469 阅读 · 0 评论 -
求一个正整数二进制中1的个数
思路:一个数与1作与运算则可以发现该数最后一位数为1,否则为0.然后做移位操作。 import java.util.*; public class Main { public int solution(int input) { int count=0;//1的个数 while(input!=0){ if ((input & 1) == 1) { count++; } input >>= 1; } retu原创 2020-09-21 16:28:18 · 257 阅读 · 1 评论 -
移动数组的后k个数
import java.util.*; public class Main { public int[] solution(int[] arr,int n,int k) { int[] arrtmp = new int[n]; for (int i = 0; i < k; i++) { arrtmp[i] = arr[n-k + i]; } for (int i = 0; i < n - k; i++) { arrtmp[i + k] = arr[i]原创 2020-09-21 16:01:31 · 108 阅读 · 0 评论 -
实现二叉树的先序,中序,后序遍历
题目描述 分别按照二叉树先序,中序和后序打印所有的节点 import java.util.*; class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; } public class Solution { /** * * @param root TreeNode类 the root of binary tree * @return int整型二维数原创 2020-09-10 00:10:39 · 227 阅读 · 0 评论 -
算法-反转链表
题目描述 输入一个链表,反转链表后,输出新链表的表头。 package niuke; public class Solution { public ListNode ReverseList(ListNode head) { if(head == null || head.next == null) return head; ListNode newHead = head; while(head.next!=null){ Lis原创 2020-09-10 00:08:05 · 90 阅读 · 0 评论 -
算法-把二叉树打印成多行
题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 package niuke; import java.util.ArrayList; import java.util.Queue; import java.util.LinkedList; public class Solution { ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayList<Ar原创 2020-09-10 00:01:09 · 188 阅读 · 0 评论