ICode9

精准搜索请尝试: 精确搜索
  • LeetCode 108 Convert Sorted Array to Binary Search Tree DFS2022-07-29 06:31:26

    Given an integer array nums where the elements are sorted in ascending order, convert it to a height-balanced binary search tree. A height-balanced binary tree is a binary tree in which the depth of the two subtrees of every node never differs by more tha

  • 二叉排序树逻辑分析及代码实现2022-07-28 23:04:00

    二叉排序树主要有插入,删除这两个操作,二叉排序树是基于中序输出实现的,所以需满足左指针节点数据<节点数据<右指针节点数据   首先二叉排序树的数据类型定义为结构体,数据包含数据,节点的左指针,节点的右指针 1 struct node 2 { 3 int key; 4 node* left; 5 node* right;

  • 算法练习-最长无重复子串2022-07-28 13:37:11

    // ------------------最长无重复子串---------------------------- var lengthOfLongestSubstring = function(s) { let max = 0 let left = 0 let right = 1 let l = 0 let r = 0 if (s.length === 0 || s.length === 1) return s.length while (r

  • 力扣练习——44 路径总和 III2022-07-28 11:35:56

    1.问题描述 给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。   示例:

  • LeetCode 103 Binary Tree Zigzag Level Order Traversal 双端队列 Deque2022-07-28 04:33:41

    Given the root of a binary tree, return the zigzag level order traversal of its nodes' values. (i.e., from left to right, then right to left for the next level and alternate between). Solution 由于是 \(zigzag\) 的形式,刚开始的思路是用 \(stack\) 来维护反序,但是

  • 五大算法之二分搜索2022-07-28 00:33:21

    概述   二分搜索是常见的搜索算法,能够将有序数组搜索的线性复杂度降低到对数级别。搜索过程每次取搜索区间内的中间元素,如果等于目标元素则直接返回结果;如果大于或小于目标元素,则将搜索区间缩短到对应的一半元素范围,继续搜索,直至搜索区间为空。当然二分搜索不限于找目标值,寻找左

  • 二分法2022-07-26 19:07:24

    二分查找也常被称为二分法或者折半查找,每次查找时通过将待查找区间分成两部分并只取一部分继续查找,将查找的复杂度大大减少。对于一个长度为 O(n) 的数组,二分查找的时间复杂度为 O(log n)。 1、给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留

  • 归并排序算法2022-07-26 12:01:36

    归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。     public class MergeSortTest {public static void main(String[] args) {int[] data = new int[] 

  • 【Java面试手册-算法篇】给定一个非空字符串,最多删除一个字符,判断是否能成为回文字符串2022-07-26 09:02:41

    回文字符串是指一个字符串从左到右与从右到左遍历得到的序列是相同的。也就是说不管从左读,还是从右读,都是一样的。 比如 “abcba”、“aaa” 是回文字符串,而 “abca” 不是回文字符串,但是从 "abca" 中删除一个 b 或 c 得到的新字符串 "aca" 或 "aba" 就是回文字符串。 实现思路:

  • [LeetCode] 919. Complete Binary Tree Inserter2022-07-26 01:32:00

    A complete binary tree is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible. Design an algorithm to insert a new node to a complete binary tree keeping it complete after the inser

  • LeetCode/完全二叉树的节点个数2022-07-25 23:35:47

    1. 深度优先 class Solution { public: int countNodes(TreeNode* root) { if(!root) return 0; return 1+countNodes(root->left)+countNodes(root->right); } }; 2. 广度优先 class Solution { public: int countNodes(TreeNode* root) {

  • 35题:搜索插入位置2022-07-25 22:00:31

    例题: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 输入: nums = [1,3,5,6], target = 5 输出: 2 输入: nums = [1,3,5,6], target = 2 输出: 1 输入:

  • java数据结构分析-红黑树2022-07-25 20:37:31

    红黑树的特性(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL 或NULL)的叶子节点! ](4)如果一个节点是红色的,则它的子节点必须是黑色的。(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。左旋对 x 进

  • c++二分法查找2022-07-25 14:31:36

    二分法: 二分法应用条件:1)数组为有序数组。2)同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的。 区间的定义: 区间的定义不同代码就不同。 1)定义target在[left, right]区间 while (left <= right) 要使用 <= ,因为left == right是有意义

  • 在线CAD图纸批注功能方案比较与实现2022-07-24 21:31:13

    AutoCAD的出现与应用使得在其应用领域内的工作效率得到了质的飞跃。同时随着技术的不断进步,更多的人希望能摆脱AutoCAD环境,能方便的实现Web在线看图。图纸批注此功能作为图纸审核工作的一个重要工作,本文将介绍如何实现在线Web端图纸批注功能。 实现效果图   Web在线打开AutoCAD

  • POJ3580SuperMemo(无旋treap-平衡树的区间操作)2022-07-24 11:31:24

    题目传送门:http://poj.org/problem?id=3580 题意:有一个序列,有6种操作: ADD x y D:将x-y区间内的值全部加D,例如,将区间{1, 2, 3, 4, 5} 2-4 全部+1 得到 {1, 3, 4, 5, 5} REVERSE x y: 将x-y区间内的值全部翻转. 例如,翻转 区间 2-4,{1, 2, 3, 4, 5} 得到 {1, 4, 3, 2, 5} REVOLVE x

  • 洛谷P3369 【模板】普通平衡树(无旋treap数组版)2022-07-24 10:35:01

    题目传送门:https://www.luogu.com.cn/problem/P3369 模板: 1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<iostream> 5 using namespace std; 6 const int MAXN = 100005; 7 const int MOD = 2147483647; 8

  • LeetCode 102 Binary Tree Level Order Traversal 层序BFS2022-07-24 06:00:14

    Given the root of a binary tree, return the level order traversal of its nodes' values. (i.e., from left to right, level by level). Solution 用 \(BFS\) 即可,每次将该层的节点 \(pop\), 然后 \(push\) 其子数的节点 点击查看代码 /** * Definition for a binary tree n

  • 高斯消元解线性方程组2022-07-24 01:33:10

    初等行变换 矩阵的初等行变换是实现高斯消元的方法 初等行变换有三种 某一行所有数乘\(k(k ≠ 0)\) 交换某两行 将某一行加上另一行的若干倍 高斯消元 高斯消元有四种操作 找到绝对值最大的一行(为了代码的稳定性) 将该行移到最上面 将该行第一个数变为1 将最上面一行下

  • leetcode.34. 在排序数组中查找元素的第一个和最后一个位置2022-07-24 00:02:58

    给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。   示例 1: 输入:nums = [5,7,7,8,8,10], target

  • leetcode.33. 搜索旋转排序数组2022-07-23 22:31:29

    整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处

  • 多进程计算质素2022-07-23 21:36:06

    示例:primer.c #include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <string.h> #define LEFT 30000000#define RIGHT 30000200#define THRNUM (RIGHT-LEFT+1) typedef struct thread_arg_st //自定义结构体{   int i;}targ_st; static void

  • LeetCode105 从前序与中序遍历序列构造二叉树2022-07-23 20:04:03

    LeetCode105 从前序与中序遍历序列构造二叉树 模板题目. # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution

  • 【树】力扣669:修剪二叉搜索树2022-07-23 11:05:13

    给你二叉搜索树的根节点 root,同时给定最小边界 low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在 [low, high] 中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯一的答案 。 所以结果应当返回

  • 7-3 树的同构2022-07-22 11:05:01

    给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 图1 图2 现给定两棵树,请你判断它们是否是同构

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有