21.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
.checkgroup .item{
height: 42px;
line-height: 42px;
padding: 0 10px;
margin: 10px 0;
border: 1px solid #c7c7c7;
border-radius: 6px;
}
.checkgroup.radius .item{
border-radius: 21px;
}
.checkgroup .item.selected{
border: 1px solid #08b292;
background: #08b292;
color: #ffffff;
}
</style>
</head>
<body>
<div id="jsCheckGroup">
<div class="checkgroup radius">
<div data-val="a" class="item selected">选项a</div>
<div data-val="b" class="item">选项b</div>
<div data-val="c" class="item">选项c</div>
<div data-val="d" class="item">选项d</div>
</div>
</div>
<script type="text/javascript">
function CheckGroup(renderTo, options, isMultiple) {
var that = this;
that.renderTo = renderTo;
that.options = options;
that.isMultiple = !!isMultiple;
that.initHtml();
that.initEvent();
}
CheckGroup.prototype.initHtml = fInitHtml;
CheckGroup.prototype.initEvent = fInitEvent;
CheckGroup.prototype.toggleEl = fToggleEl;
CheckGroup.prototype.isSelected = fIsSelected;
CheckGroup.prototype.val = fVal;
function fInitHtml() {
var that = this;
// 请补全代码,拼接html字符串
// var options = [{text: '选项a', value: 'a'},
// {text: '选项b', value: 'b'}, {text: '选项c', value: 'c'}, {text: '选项d', value: 'd'}];
var sHtml = '';
for(let i = 0; i < that.options.length; i ++){
sHtml += `<div data-val="${that.options[i].value}" class="item">${that.options[i].text}</div>`;
}
sHtml = `<div class="checkgroup ${that.isMultiple ? '' : 'radius'}">${sHtml}</div>`;
console.log('@@@', that);
that.renderTo.innerHTML = sHtml;
// 请补全代码,获取checkgroup的dom元素引用
that.el = document.querySelector('.checkgroup');
}
function fInitEvent() {
var that = this;
that.el && that.el.addEventListener('click', function (event) {
var item = event.target;
item.classList.contains('item') && that.toggleEl(item);
});
}
function fToggleEl(item) {
// 根据当前是单选还是多选,以及当前元素是否选中,高亮/取消���亮指定的选项dom元素
var that = this;
if (that.isSelected(item)) {
// 请补全代码
item.className = 'item';
} else if (that.isMultiple) {
// 请补全代码
item.className = 'item selected';
} else {
// 请补全代码
let select = document.querySelector('.selected');
if(select) select.className = 'item';
item.className = 'item selected';
}
}
function fIsSelected(item) {
// 请补全代码,判断item是否选中
return item.className.includes('selected');
}
function fVal(values) {
var that = this;
if (arguments.length === 0) {
// 请补全代码,获取高亮的选项元素
var items = document.querySelectorAll('.selected');
// 请补全代码,获取高亮的选项元素的data-val
var result = [];
for(let i = 0; i < items.length; i ++){
result.push(items[i].getAttribute('data-val'));
}
return result;
}
console.log('@@@', values);
!that.isMultiple && values.length > 1 && (values.length = 1);
// 请补全代码,获取所有的选项元素
var items = document.querySelectorAll('.item');
// 请补全代码,在指定元素上加上高亮的class
for(let i = 0; i < items.length; i ++){
items[i].className = values.includes(items[i].getAttribute('data-val')) ? 'item selected' : 'item';
}
}
</script>
</body>
</html>
22.最小值
思路:
在满足题目的条件下,由m,n中较小的那个独自显小时,a+b最小
证明:
(n−a)(m−b)
=nm−am−bn+ab
=nm−am−bm+bm−bn+ab
=(n−a−b)m+b(m−n+a)
≥(n−a−b)m=[n−(a+b)]m
代码:
#include <climits>
#include <iostream>
using namespace std;
int main() {
long long n, m, k;
while (cin >> n >> m >> k) { // 注意 while 处理多个 case
if(n > m) swap(n, m);
long long sum = 0;
while((n - sum) * m > k){
sum ++;
}
printf("%lld", sum);
}
}
// 64 位输出请用 printf("%lld")
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
struct Node{
int len;
int end;
}node[200100];
bool tmp(const Node a, const Node b){
return a.end < b.end;
}
int main() {
int t;
cin >>t;
while (t --) { // 注意 while 处理多个 case
int n;
cin >> n;
for(int i = 0; i < n; i ++){
cin >> node[i].len >> node[i].end;
}
sort(node, node + n, tmp);
int ans = 0;
bool flag = true;
for(int i = 0; i < n; i ++){
ans += node[i].len;
if(ans > node[i].end){
flag = false;
break;
}
}
if(flag) cout << "Yes" << endl;
else cout << "No" << endl;
}
}
// 64 位输出请用 printf("%lld")
分类:
前端面试知识点整理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)