aguesuka |
| Java • aguesuka 分享 Lombok 一个有意思的 Issue 2022 年 5 月 20 日 • 最后回复来自 ychost | 11 |
| 问与答 • aguesuka 如何翻译 "Applies this function to the given argument" 中的 "apply" 2021 年 7 月 7 日 • 最后回复来自 Tumblr | 8 |
| 算法 • aguesuka 请教个有向图的算法题 2021 年 5 月 29 日 • 最后回复来自 aguesuka | 8 |
| Java • aguesuka NIO 里面, SocketChannel.connect 的时候发生了什么? 2020 年 2 月 23 日 • 最后回复来自 SoloCompany | 3 |
| Java • aguesuka 用 Java 撸了一个 yield 的玩具 2019 年 9 月 7 日 • 最后回复来自 janus77 | 16 |
aguesuka 最近回复了
| 回复了 pythonee 创建的主题 › 你遇到过哪些比较难理解的编程语言概念2024 年 9 月 6 日 |
sound
decidable
consistent
canonicity
decidable
consistent
canonicity
| 回复了 reggiebriggesmex 创建的主题 › 该不该辞职去读 211ai 硕2024 年 5 月 10 日 |
进电子厂 > OD > 啃老 > 反向读研
我眼里是 985 本 > 985 硕的,反向读研怕不是脑壳烧了
我眼里是 985 本 > 985 硕的,反向读研怕不是脑壳烧了
| 回复了 zhilvyun1 创建的主题 › 推广光伏的来到我们村了,大家给看看靠谱吗2024 年 5 月 9 日 |
问了下 chatgpt
User
这句话对吗“而在合同交易中,通常乙方是接收支付的一方,而甲方则是支付方。这种设计是基于合同的性质和目的。乙方可能是提供商品或服务的供应商,而甲方是购买者或委托方。”
ChatGPT
是的,这句话是正确的。它解释了合同交易中甲乙双方的一般角色和责任分配,说明了乙方通常是接收支付的一方,而甲方是支付方。这种安排通常根据合同的性质和目的进行设计。乙方可能是提供商品或服务的供应商,而甲方则是购买者或委托方。
User
这句话对吗“而在合同交易中,通常乙方是接收支付的一方,而甲方则是支付方。这种设计是基于合同的性质和目的。乙方可能是提供商品或服务的供应商,而甲方是购买者或委托方。”
ChatGPT
是的,这句话是正确的。它解释了合同交易中甲乙双方的一般角色和责任分配,说明了乙方通常是接收支付的一方,而甲方是支付方。这种安排通常根据合同的性质和目的进行设计。乙方可能是提供商品或服务的供应商,而甲方则是购买者或委托方。
| 回复了 hblevins 创建的主题 › 实现一个功能,代码里的逻辑需要思考到什么程度?2023 年 12 月 6 日 |
| 回复了 matrixage 创建的主题 › [付费问答] 在写一个富文本编辑器,其中用到了带父子节点的双向链表,可无限嵌套,写了个递归一直报错,希望大佬指点指点,答案被采纳我 v 信转 120 给您(不在乎钱的也可以试一试,这十分考验算法实战能力)2023 年 11 月 24 日 |
没测过,不过思路应该没问题
type Tree = Array<TreeItem>
type RawNode = {
id: string
pid?: string
prev_id?: string
next_id?: string
[key: string]: any
}
interface LinkedNode<E> {
node: E,
firstChild?: LinkedNode<E>
nextNode?: LinkedNode<E>
}
function toTree<E, K, T>(elements: E[],
getId: (element: E) => K,
getParentId: (element: E) => K | undefined,
getPrevId: (element: E) => K | undefined,
createTreeNode: (element: E) => T,
appendChild: (parent: T, child: T) => void): T[] {
const linkedNodes: Map<K, LinkedNode<T>> = new Map();
elements.forEach(element => linkedNodes.set(getId(element), {node: createTreeNode(element)}));
const rootLinkedNode: LinkedNode<T>[] = []
for (let element of elements) {
const parentId = getParentId(element);
const id = getId(element)
const linkedNode = linkedNodes.get(id)!
if (parentId) {
const prevId = getPrevId(element)
if (prevId) {
const pervLinkedNode = linkedNodes.get(prevId);
console.assert(!!pervLinkedNode, `${prevId} is not found`)
pervLinkedNode!.nextNode = linkedNode
} else {
const parentLinkedNode = linkedNodes.get(parentId);
console.assert(!!parentLinkedNode, `${parentId} is not found`)
parentLinkedNode!.firstChild = linkedNode
}
} else {
rootLinkedNode.push(linkedNode)
}
}
for (let linkedNode of linkedNodes.values()) {
for (let child = linkedNode.firstChild; child; child = child.nextNode) {
appendChild(linkedNode.node, child.node)
}
}
return rootLinkedNode.map(linkedNode => linkedNode.node)
}
function test(){
const raw_nodes = [/**/]
const rootNodes :Tree = toTree<RawNode, string, RawNode>(raw_nodes,
node => node.id,
node => node.pid,
node => node.prev_id,
node => {
node.children = [];
return node;
},
(parent, child) => parent.children.push(child)
)
console.info(rootNodes)
}
type Tree = Array<TreeItem>
type RawNode = {
id: string
pid?: string
prev_id?: string
next_id?: string
[key: string]: any
}
interface LinkedNode<E> {
node: E,
firstChild?: LinkedNode<E>
nextNode?: LinkedNode<E>
}
function toTree<E, K, T>(elements: E[],
getId: (element: E) => K,
getParentId: (element: E) => K | undefined,
getPrevId: (element: E) => K | undefined,
createTreeNode: (element: E) => T,
appendChild: (parent: T, child: T) => void): T[] {
const linkedNodes: Map<K, LinkedNode<T>> = new Map();
elements.forEach(element => linkedNodes.set(getId(element), {node: createTreeNode(element)}));
const rootLinkedNode: LinkedNode<T>[] = []
for (let element of elements) {
const parentId = getParentId(element);
const id = getId(element)
const linkedNode = linkedNodes.get(id)!
if (parentId) {
const prevId = getPrevId(element)
if (prevId) {
const pervLinkedNode = linkedNodes.get(prevId);
console.assert(!!pervLinkedNode, `${prevId} is not found`)
pervLinkedNode!.nextNode = linkedNode
} else {
const parentLinkedNode = linkedNodes.get(parentId);
console.assert(!!parentLinkedNode, `${parentId} is not found`)
parentLinkedNode!.firstChild = linkedNode
}
} else {
rootLinkedNode.push(linkedNode)
}
}
for (let linkedNode of linkedNodes.values()) {
for (let child = linkedNode.firstChild; child; child = child.nextNode) {
appendChild(linkedNode.node, child.node)
}
}
return rootLinkedNode.map(linkedNode => linkedNode.node)
}
function test(){
const raw_nodes = [/**/]
const rootNodes :Tree = toTree<RawNode, string, RawNode>(raw_nodes,
node => node.id,
node => node.pid,
node => node.prev_id,
node => {
node.children = [];
return node;
},
(parent, child) => parent.children.push(child)
)
console.info(rootNodes)
}
| 回复了 chengxiao 创建的主题 › 生态这玩意儿,还真得看大厂的支持2023 年 10 月 10 日 |
虽然但是 v 社就人数来说并不是大厂,而且相当一部分技术员工精力在于游戏制作和游戏本身。所以生态这东西比想象的还要简单。
所以什么时候 linux 玩炎孕才能播放 cg
所以什么时候 linux 玩炎孕才能播放 cg
| 回复了 Ayanokouji 创建的主题 › 好奇:每当 jdk 发布新版的时候,那些拿 jdk8 说事的人,是什么心态。2023 年 9 月 19 日 |
保守主义(英语:conservatism ),是一种旨在促进和保护传统的社会制度和实践的文化、社会和政治哲学。[1][2]保守主义的核心原则因其所处的具体文化和文明的现状( status quo )而有所不同。保守派倾向于支持保证稳定性并逐渐演变的制度和实践[2],经常反对进步主义并寻求回归传统价值观。
| 回复了 maleclub 创建的主题 › 天下乌鸦一般黑,寻求一款能替代 Chrome/Edge 的浏览器2023 年 9 月 10 日 |
@Biggoldfish 二极管, 只有左右两个极端
| 回复了 STtree 创建的主题 › “使用抛异常的方式返回校验不通过的结果”是不是一个好的处理方式?2023 年 8 月 15 日 |
好歹换成 Haskell 吧, 21 世纪了还在用 sum type 代替 product type