【算法】手写题

news/2024/5/20 12:06:37/文章来源:https://blog.csdn.net/partworld/article/details/130979507

文章目录

  • 画一个三角形
  • 实现三栏布局
    • 通过position和margin
    • 通过float和margin
    • 通过flex实现
  • 变量提升题
  • 实现边框0.5px
  • 深拷贝
  • 快速排序

画一个三角形

  .box1 {width: 0;height: 0;border: 10px solid;border-color: red transparent transparent transparent;}

实现三栏布局

  • 三栏布局是两边固定,中间自适应

通过position和margin

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.container {position: relative;}.left,.right {position: absolute;height: 100%;top: 0;background-color: #ff69b4;}.left {left: 0;width: 100px;}.right {right: 0;width: 200px;}.main {height: 100%;margin: 0 200px 0 100px;background-color: #659;}</style></head><body><div class="container"><div class="left">left</div><div class="right">right</div><div class="main">main</div></div></body>
</html>

通过float和margin

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.container {width: 100%;height: 100%;}.left {float: left;height: 100%;width: 100px;background-color: pink;}.right {float: right;height: 100%;width: 200px;background-color: pink;}.main {height: 100%;margin: 0 200px 0 100px;background-color: green;}</style></head><body><div class="container"><div class="left">left</div><div class="right">right</div><div class="main">main</div></div></body>
</html>

通过flex实现

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.container {display: flex;}.left {width: 200px;background-color: red;}.main {flex: 1;background-color: pink;}.right {width: 200px;background-color: red;}</style></head><body><div class="container"><div class="left">left</div><div class="main">main</div><div class="right">right</div></div></body>
</html>

变量提升题

  • 变量提升,声明式函数比var的优先级更高,后创建的函数覆盖前面的函数
  • 当JavaScript代码执行时,会进行两个阶段的处理:编译阶段和执行阶段。在编译阶段,JavaScript会将函数声明和变量声明(但是还没有赋值)提升到作用域的顶部。这意味着无论函数声明和变量声明在代码中的位置如何,它们都会在执行阶段之前被处理。
  • 函数声明的优先级高于变量声明
  • 输出fn(){console.log(400)},100,100,300,400

实现边框0.5px

原理:
方法1:高度1px,背景渐变,一半有颜色,一半没颜色
linear-gradient(0deg, #f00 50%, transparent 50%);
方法2:通过transform:scaleY(.5)进行缩放垂直尺寸

深拷贝

 <!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><script>//判断是不是对象function isObject(value) {const valueType = typeof value; // null,object,function,arrayreturn (value !== null && (valueType === "object" || valueType === "function"));}function deepCopy(originValue, map = new WeakMap()) {//通过map解决循环引用,//1.如果是原始类型,直接返回if (!isObject(originValue)) {return originValue;}//2.如果是对象类型,才需要创建对象if (map.get(originValue)) {return map.get(originValue);}const newObj = Array.isArray(originValue) ? [] : {};map.set(originValue, newObj);for (const key in originValue) {newObj[key] = deepCopy(originValue[key], map);}return newObj;}const info = {name: "why",age: 18,friend: {name: "kobe",address: {name: "洛杉矶",detail: "lmp",},},};info.self = info;const newObj = deepCopy(info);console.log(newObj);</script></body>
</html>

快速排序

/*** LeetCode 912: 排序数组* @param {number[]} nums 数组* @return {number[]} 排序后的数组*/
const sortArray = function(nums) {// 使用内置的快速排序算法进行排序const quickSort = (nums, start, end) => {if (start >= end) {return;}// 选择基准元素const pivot = nums[start];let left = start + 1;let right = end;while (left <= right) {// 找到左侧大于等于基准元素的值while (left <= right && nums[left] < pivot) {left++;}// 找到右侧小于等于基准元素的值while (left <= right && nums[right] > pivot) {right--;}// 交换左侧和右侧的值if (left <= right) {[nums[left], nums[right]] = [nums[right], nums[left]];left++;right--;}}// 将基准元素放到正确的位置[nums[start], nums[right]] = [nums[right], nums[start]];// 递归排序左右两部分quickSort(nums, start, right - 1);quickSort(nums, right + 1, end);};// 调用快速排序函数进行排序quickSort(nums, 0, nums.length - 1);return nums;
};// 测试用例
const nums = [5, 2, 3, 1];
console.log(sortArray(nums)); // 输出 [1, 2, 3, 5]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_690763.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出之Docker Compose详解

目录 1.Docker Compose概述 1.1 Docker Compose 定义 1.2 Docker Compose产生背景 1.3 Docker Compose 核心概念 1.4 Docker Compose 使用步骤 1.5 Docker Compose 常用命令 2. Docker Compose 实战 2.1 Docker Compose下载和卸载 2.2 Docker Compose 项目概述 2.3 Do…

呈现视觉妙技:使用Python将MP4视频转化为迷人的GIF图像

前言 GIF图片对于我来说是一个很好的展示方式&#xff0c;GIF 图片能够展示动态的图像效果&#xff0c;对于展示计算机视觉算法或结果非常有用。例如&#xff0c;我可以使用 GIF 图片来展示运动跟踪、姿势识别、图像分割、目标检测等任务的结果&#xff0c;以更生动和直观的方…

20230606夏新(Amoi)的4K显示器D320B2000的亮点检测

20230606夏新&#xff08;Amoi&#xff09;的4K显示器D320B2000的亮点检测 2023/6/7 0:14 https://item.jd.com/63690000655.html 夏新&#xff08;Amoi&#xff09;电脑显示器高清家用办公电竞吃鸡游戏液晶监控直播大屏便携显示屏幕 32英寸【直面 4k/144hz双模式 全面屏】黑 …

总结891

学习目标&#xff1a; 月目标&#xff1a;6月&#xff08;线性代数强化9讲1遍&#xff0c;背诵15篇短文&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;线性代数强化1讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测 每日必复习&#xff08;5分钟&#xff…

Day_40关于图的总结

一. 实际问题的抽象与建模 如果我们需要研究一个实际问题&#xff0c;首先第一步就是对这个实际问题进行抽象&#xff0c;抽象是从众多的事物中抽取出共同的、本质性的特征&#xff0c;而舍弃其非本质的特征的过程。具体地说&#xff0c;抽象就是人们在实践的基础上&#xff0c…

chatgpt赋能python:Python如何自动换行

Python如何自动换行 在Python编程中&#xff0c;有时候我们需要输出很长的文本或字符串&#xff0c;这时候就需要自动换行的功能。本文将介绍Python中实现自动换行的几种方法。 方法一&#xff1a;使用字符拼接 在Python中&#xff0c;我们可以使用"“来拼接字符串。如…

Internal error. Please report to https://jb.gg/ide/critical-startup-errors

大佬的解决方式&#xff1a;PyCharm 2023 启动报错的处理 部分同学&#xff0c;发现在安装 PyCharm 2023.1.2 以及 PyCharm 2023.2 的抢先体验版之后&#xff0c;运行的时候愣是直接弹出了类似上面的报错。 反正&#xff0c;别慌&#xff01; 是的&#xff0c;他们有 bug。 …

【Java】深入理解Java虚拟机 | 垃圾收集器GC

《深入理解Java虚拟机》的阅读笔记——第三章 垃圾收集器与内存分配策略。 参考了JavaGuide网站的相关内容&#xff1a;https://javaguide.cn/ Q&#xff1a;哪些内存需要回收&#xff1f;什么时候回收&#xff1f;如何回收&#xff1f; 2 对象已死吗&#xff1f; 2.1 引用…

剪映自动打关键帧

牙叔教程 简单易懂 这是给单张图片打关键帧的教程, 给图片打关键帧有四个步骤 鼠标点选图片打起始帧跳转到图片末尾打结束帧 打帧是一件很费手的事情, 所以我写了个自动化的代码, 专门用来打关键帧, 使用的软件是 AutoHotkey 关键帧参数的详细解释 剪映 自动打关键帧 AutoH…

Azure Log Analytics:与Power BI集成

注&#xff1a;本文最初发布于https://d-bi.gitee.io, 2023年6月迁移至CSDN 前述 Azure Log Analytics是Azure Monitor中的一项分析服务。本文将讲述通过Log Analytics与Power BI集成的方式&#xff0c;获取Power BI工作区内的日志信息&#xff0c;包括各PBI数据集的CPU消耗&a…

Web安全总结

目录 网站架构一般web服务器结构相比于传统的网络攻击&#xff0c;基于web的攻击有什么不同&#xff1f;HTTP协议HTTP响应拆分攻击HTTPS针对HTTPS协议的攻击那么如何保证证书的唯一性&#xff1f; HTTP会话Cookie和Session的关系HTTP会话攻击解决方案 Web访问中的隐私问题Web应…

chatgpt赋能python:Python如何空一行:介绍

Python如何空一行&#xff1a;介绍 在Python编程中&#xff0c;经常需要在输出文字或代码时进行空行分隔。一个常用的场景就是在代码中加入注释&#xff0c;将注释与代码分开&#xff0c;使代码逻辑更加清晰易懂。在某些情况下&#xff0c;也需要在输出文字时进行空行分割&…

ChatGPT-Plugins-Searchable

ChatGPT Plus 用户应该都知道Plus已经开放了插件功能&#xff0c;但是在插件商店里存在一个较大的问题插件数量超过100款&#xff0c;却没有便捷的搜索功能。 而我们在查找一款插件时&#xff0c;需要从插件商店的第一页点击到最后一页一个个找&#xff0c;显然这非常的麻烦。 …

JUC基础-0606

9.ReentrantReadWriteLock读写锁 9.1 锁的基本概念 悲观锁&#xff1a;不支持并发&#xff0c;效率低&#xff0c;但是可以解决所有并发安全问题 乐观锁&#xff1a;支持并发读&#xff0c;维护一个版本号&#xff0c;写的时候比较版本号进行控制&#xff0c;先提交的版本号…

【Vue】三:Vue组件: 组件使用和组件嵌套

文章目录 1.第一个组件1.1不使用组件前1.2创建组件1.3注册组件1.4使用组件1.5 细节 2.组件嵌套 1.第一个组件 1.1不使用组件前 1.2创建组件 Vue.extends({该配置项和new Vue的配置项几乎相同})区别&#xff1a; &#xff08;1&#xff09;创建Vue组件的时候&#xff0c;不能使…

Kubernetes之pod

Kubernetes之pod 在通过docker运行程序时&#xff0c;我们通常会制作Dockerfile文件构建镜像。也可以基于某个镜像运行容器在容器中安装组件之后&#xff0c;再基于容器生成镜像 使用如下命令可生成镜像&#xff0c;想了解更多参数请添加–help docker build -f Dockerfile路…

【Leetcode -138.复制带随机指针的链表 -2130.链表最大孪生和】

Leetcode Leetcode -138.复制带随机指针的链表Leetcode -2130.链表最大孪生和 Leetcode -138.复制带随机指针的链表 题目&#xff1a;给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构…

4种普遍的机器学习分类算法

朴素贝叶斯分类 朴素贝叶斯分类是基于贝叶斯定理与特征条件独立假设的分类方法&#xff0c;发源于古典数学理论&#xff0c;拥有稳定的数学基础和分类效率。它是一种十分简单的分类算法&#xff0c;当然简单并不一定不好用。通过对给出的待分类项求解各项类别的出现概率大小&a…

企业应该如何选择适合自己的直播平台?

企业应该如何选择适合自己的直播平台&#xff1f;本文将从功能需求、可靠性与稳定性、用户体验、技术能与售后服务能力等方面进行综合考虑&#xff0c;帮助您做出明智的决策&#xff0c;或是说提供选型方面的参考。 企业在选择一家直播平台时应考虑以下因素&#xff1a; 1. 企…

【链表的分类】

链表是一种常用的数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含一个数据元素和指向下一个节点的指针。根据节点的连接方式和节点的性质&#xff0c;链表可以分为多种类型。 单向链表&#xff08;Singly Linked List&#xff09; 单向链表是最基本的链表类…