首页 > 编程语言 >算法刷题-只出现一次的数字、输出每天是应该学习还是休息还是锻炼、将有序数组转换为二叉搜索树

算法刷题-只出现一次的数字、输出每天是应该学习还是休息还是锻炼、将有序数组转换为二叉搜索树

时间:2023-02-18 11:03:27浏览次数:41  
标签:right TreeNode val nums int 二叉 算法 left 刷题

只出现一次的数字(位运算、数组)

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4

解答:

class Solution {
    public int singleNumber(int[] nums) {
        int res = 0;
        for (int num : nums) {
            res ^= num;
        }
        return res;
    }
}

输出每天是应该学习还是休息还是锻炼(数学)

30天中,从第一天开始五天学习,一天休息、一天锻炼,输出每天是应该学习还是休息还是锻炼

public class HelloWorld {
    public static void main(String []args) {
        int n1=0,n2=0,n3=0,i;
        for(i=1;i<=30;i++){
            if(n1<5){
                System.out.println("学习");
                n1++;
                continue;
            }
            else{
                System.out.println("休息");
                System.out.println("锻炼");
                n1=0;
                i++;
            }
        }
    }
}

将有序数组转换为二叉搜索树(树、二叉搜索树)

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 **高度平衡 **二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。

示例 1: 输入:nums = [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:
示例 2: 输入:nums = [1,3] 输出:[3,1] 解释:[1,3] 和 [3,1] 都是高度平衡二叉搜索树。

提示:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums 按 严格递增 顺序排列

解答:

public class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode() {
    }
    TreeNode(int val) {
        this.val = val;
    }
    TreeNode(int val, TreeNode left, TreeNode right) {
        this.val = val;
        this.left = left;
        this.right = right;
    }
}
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        return traversal(nums, 0, nums.length - 1);
    }
    public TreeNode traversal(int[] nums, int left, int right) {
        if (left > right)
            return null;
        int mid = left + ((right - left) / 2);
        TreeNode node = new TreeNode(nums[mid]);
        node.left = traversal(nums, left, mid - 1);
        node.right = traversal(nums, mid + 1, right);
        return node;
    }
}

本文内容到此结束了, 如有收获欢迎点赞

标签:right,TreeNode,val,nums,int,二叉,算法,left,刷题
From: https://blog.51cto.com/zhanjq/6065120

相关文章

  • 数据结构刷题2023.02.18小记
    连通分量一个无向图的连通分量是其极大的连通子图无向图中任意两个节点之间有连通,则称为连通图。每一个非连通图可分为几个极大连通部分,每一个极大连通子图称为连通分量;......
  • Hive 刷题——视频热度问题
    需求描述现有用户视频播放记录表(user_video_log)如下。uid(球队名称)video_id(视频id)start_time(开始时间)end_time(结束时间)if_like(是否点赞)if_retweet(是否喜欢)c......
  • 算法实验
    多机调度问题(贪心法)问题描述有n个独立的作业由m台相同的机器进行加工处理,作业i所需的处理时间为t(1≤i≤n),每个作业均可在任何一台机器上加工处理,但不可间断、拆分。多......
  • 算法题——改变数组元素
    题目:改变数组元素给一个空数组v和一个整数数组a,对数组v进行n次操作,第i次操作为在数组v尾部插入整数0,将位于数组v尾部的a[i]个元素都变为1。这里需要注意a[i]可能为0,该情......
  • m最小二乘法自适应均衡误码率仿真,对比LS,DEF以及LMMSE三种均衡算法误码率
    1.算法描述        信道估计是通信系统接收机的重要功能模块,主要是用来估计信号所经历信道的冲击响应,并用于后续的信道均衡处理,以便消除多径信号混叠造成的ISI。......
  • 算法随想Day15【二叉树】| LC110-平衡二叉树、LC257-二叉树的所有路径、LC404-左叶子
    LC110.平衡二叉树递归做法一次通过,其实也就是对比:某个节点的左子树和右子树的最大深度的绝对值不大于1,即可认为是平衡二叉树classSolution{public:boolflag;......
  • 基于蚁群算法的二维路径规划matlab仿真
    1.算法描述蚁群算法是一种用来寻找优化路径的概率型算法。它由MarcoDorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。这种算法具有......
  • 基于平均不同分辨率的共振峰跟踪算法matlab仿真
    1.算法描述共振峰轨迹的自动跟踪算法,其特点是不借助于其它的信息来源,仅仅是基于语谱图信息,来确定语谱图上前四个共振峰频率的位置和它们关于时间轴的轨迹.算法由三个层......
  • 基于平均不同分辨率的共振峰跟踪算法matlab仿真
    1.算法描述       共振峰轨迹的自动跟踪算法,其特点是不借助于其它的信息来源,仅仅是基于语谱图信息,来确定语谱图上前四个共振峰频率的位置和它们关于时间轴的轨......
  • 万字长文概述单目3D目标检测算法
    一,理论基础-相机与图像1.1,单目相机介绍1.2,针孔相机模型1.3,坐标系间的欧式变换1.4,世界坐标与像素坐标的转换1.5,三维旋转:欧拉角、旋转矩阵之间的转换二,单目3D目标......