Skip to content

Instantly share code, notes, and snippets.

View hieuwu's full-sized avatar
🌞
Free

Hieu Vu hieuwu

🌞
Free
View GitHub Profile
@hieuwu
hieuwu / promotion_solution_knapsack_01.cpp
Last active May 20, 2021 23:28
Solution for promotion for EPOS C++
#include <bits/stdc++.h>
using namespace std;
//Idea:
//1. Sort the list by input descending
//2. Get all inputs of the list item after sorted
//3. Get indexes list of item want to pick
//4. For each index in the list, get item at that index
//Time complexcity Worst case: O(N * Sum). N is the length of the array. Sum is the total value of the array
@hieuwu
hieuwu / promotion_solution_knapsack_01.cs
Last active May 24, 2021 02:07
Solution for promotion for EPOS C#
using System;
using System.Collections.Generic;
using System.Linq;
namespace KnapsackForPromotion
{
//Idea:
//1. Sort the list by input descending (this is for the case we found (7,5) and (6,6) but we pick (6,6))
//2. Get all inputs of the list item after sorted
//3. Get indexes list of item want to pick
// Complete the countTriplets function below.
fun countTriplets(arr: Array<Long>, r: Long): Long {
var befMap = HashMap<Long, Int>()
var aftMap = HashMap<Long, Int>()
for(num in arr) {
if(aftMap.containsKey(num)) aftMap[num] = aftMap[num]!! + 1
else aftMap[num] = 1
}
@hieuwu
hieuwu / FluentBindingAdapterMvxRecyclerView.cs
Last active January 24, 2022 09:35
Customized fluent binding with adapter, view holder for MvxRecyclerView
public class PersonItemAdapter : MvxRecyclerAdapter
{
public PersonItemAdapter(IMvxAndroidBindingContext bindingContext)
: base(bindingContext)
{
}
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
var itemBindingContext = new MvxAndroidBindingContext(parent.Context, BindingContext.LayoutInflaterHolder);
@hieuwu
hieuwu / product.kt
Last active March 21, 2022 14:37
Product Entity
@Entity(tableName = "products")
data class Product(
@PrimaryKey
@NonNull
@ColumnInfo(name = "productId")
val id: String,
@ColumnInfo(name = "name")
var name: String?,
@hieuwu
hieuwu / order.kt
Created March 21, 2022 14:41
Order Entity
@Entity(tableName = "orders")
data class Order(
@PrimaryKey
@ColumnInfo(name = "orderId")
val id: String,
@ColumnInfo(name = "status")
var status: String,
@ColumnInfo(name = "address")
@hieuwu
hieuwu / LineItem.kt
Last active March 21, 2022 14:41
Line item entity
@Entity(tableName = "line_items")
data class LineItem(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "lineItemId")
val id: Long,
@ColumnInfo(name = "productId")
val productId: String,
@ColumnInfo(name = "orderId")
@hieuwu
hieuwu / LineItemAndProduct.kt
Created March 21, 2022 14:53
Line Item and Product One to one relationship
data class LineItemAndProduct(
@Embedded val lineItem: LineItem?,
@Relation(
parentColumn = "productId",
entityColumn = "productId",
entity = Product::class
)
val product: Product?
)
@hieuwu
hieuwu / OrderWithLineItem.kt
Created March 21, 2022 14:54
Order and Line Item Many to one relationship
data class OrderWithLineItems(
@Embedded var order: Order,
@Relation(
parentColumn = "orderId",
entityColumn = "orderId",
entity = LineItem::class
)
val lineItemList: MutableList<LineItemAndProduct>
)
@hieuwu
hieuwu / OrderDao.kt
Created March 21, 2022 14:59
Order dao
@Dao
interface OrderDao {
//Get an order along with its line items by orderId
@Transaction
@Query("SELECT * FROM orders WHERE orderId = :id")
fun getById(id: String): Flow<OrderWithLineItems>
//Get an order by its status
@Transaction
@Query("SELECT * FROM orders WHERE status = :status LIMIT 1 ")